Lv110版本源码上传
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
from typing import List
|
||||
|
||||
class entry:
|
||||
|
||||
id = 0
|
||||
|
||||
char = None
|
||||
params = []
|
||||
tips = []
|
||||
|
||||
def __init__(self,char,params=[]) -> None:
|
||||
self.char = char
|
||||
self.params = params
|
||||
self.tips=[]
|
||||
|
||||
def 攻击强化(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 火属性强化(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 火属性抗性(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 暗属性强化(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 暗属性抗性(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 光属性强化(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 光属性抗性(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 冰属性强化(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 冰属性抗性(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 攻击速度(self,list=[]):
|
||||
return 0
|
||||
|
||||
def 技能攻击力(self,list=[]):
|
||||
return 0
|
||||
|
||||
|
||||
class Character:
|
||||
|
||||
entry_list:List[entry] = []
|
||||
|
||||
def 攻击强化(self,list=[]):
|
||||
res = 0
|
||||
for entry in self.entry_list:
|
||||
res += entry.攻击强化(list)
|
||||
return res
|
||||
|
||||
def 火属性强化(self,list=[]):
|
||||
res = 0
|
||||
for entry in self.entry_list:
|
||||
res += entry.火属性强化(list)
|
||||
return res
|
||||
|
||||
def 火属性抗性(self,list=[]):
|
||||
res = 0
|
||||
for entry in self.entry_list:
|
||||
res += entry.火属性抗性(list)
|
||||
return res
|
||||
|
||||
def 攻击速度(self,list=[]):
|
||||
res = 0
|
||||
for entry in self.entry_list:
|
||||
res += entry.攻击速度(list)
|
||||
return res
|
||||
|
||||
def 技能攻击力(self,list=[]):
|
||||
res = 0
|
||||
for entry in self.entry_list:
|
||||
res += entry.技能攻击力(list)
|
||||
return res
|
||||
@@ -0,0 +1,52 @@
|
||||
def pre_recurrence(func):
|
||||
def inner(*args,**kwargs):
|
||||
if args[0].id in args[1]:
|
||||
return 0
|
||||
else:
|
||||
args[1].append(args[0].id)
|
||||
return func(*args,**kwargs)
|
||||
return inner
|
||||
|
||||
|
||||
from basic import entry
|
||||
|
||||
class entry_0(entry):
|
||||
|
||||
id = 0
|
||||
|
||||
@pre_recurrence
|
||||
def 攻击强化(self,list=[]):
|
||||
if self.char.攻击速度(list) > 1:
|
||||
return 1000
|
||||
else:
|
||||
self.tips.append("攻速不足")
|
||||
return 500
|
||||
|
||||
@pre_recurrence
|
||||
def 火属性抗性(self, list=[]):
|
||||
if self.char.火属性强化(list) > 10:
|
||||
return 10
|
||||
else:
|
||||
self.tips.append("火强不足")
|
||||
return 5
|
||||
|
||||
@pre_recurrence
|
||||
def 火属性强化(self, list=[]):
|
||||
if self.char.火属性抗性(list) > 10:
|
||||
return 10
|
||||
else:
|
||||
self.tips.append("火抗不足")
|
||||
return 5
|
||||
|
||||
class entry_1(entry):
|
||||
|
||||
id = 1
|
||||
|
||||
@pre_recurrence
|
||||
def 攻击强化(self,list=[]):
|
||||
return 2
|
||||
|
||||
@pre_recurrence
|
||||
def 攻击速度(self,list=[]):
|
||||
return 1
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
from basic import Character
|
||||
|
||||
a = Character()
|
||||
|
||||
from entry import *
|
||||
a.entry_list.append(entry_0(a))
|
||||
a.entry_list.append(entry_1(a))
|
||||
|
||||
print(a.火属性强化())
|
||||
print(a.火属性抗性())
|
||||
@@ -0,0 +1,36 @@
|
||||
from signe import createSignal, effect, computed
|
||||
from signe.types import TSetter, TGetter
|
||||
from typing import TypeVar, Generic, overload, Union, Callable, cast
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
class Ref(Generic[T]):
|
||||
def __init__(self, getter: TGetter[T], setter: TSetter[T]) -> None:
|
||||
self.___getter = getter
|
||||
self.___setter = setter
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
return self.___getter()
|
||||
|
||||
@value.setter
|
||||
def value(self, value: T):
|
||||
self.___setter(value)
|
||||
|
||||
class ReadonlyRef(Generic[T]):
|
||||
def __init__(self, getter: TGetter[T]) -> None:
|
||||
self.___getter = getter
|
||||
|
||||
@property
|
||||
def value(self):
|
||||
return self.___getter()
|
||||
|
||||
def ref(value: T):
|
||||
comp = False if isinstance(value, (list, dict)) else None
|
||||
getter, setter = createSignal(value, comp)
|
||||
return cast(Ref[T], Ref(getter, setter))
|
||||
|
||||
|
||||
def ref_computed(fn: Callable[[], T]):
|
||||
getter = computed(fn)
|
||||
return ReadonlyRef(getter)
|
||||
@@ -0,0 +1,92 @@
|
||||
from ref import ref,ref_computed,Ref
|
||||
from signe import effect, computed
|
||||
|
||||
class Character:
|
||||
|
||||
# region 属性强化 属性抗性
|
||||
|
||||
fireRef:Ref[float]
|
||||
"""火属性强化"""
|
||||
fireResistanceRef:Ref[float]
|
||||
"""火属性抗性"""
|
||||
waterRef:Ref[float]
|
||||
"""冰属性强化"""
|
||||
waterResistanceRef:Ref[float]
|
||||
"""冰属性抗性"""
|
||||
lightRef:Ref[float]
|
||||
"""光属性强化"""
|
||||
lightResistanceRef:Ref[float]
|
||||
"""光属性抗性"""
|
||||
shadowRef:Ref[float]
|
||||
"""暗属性强化"""
|
||||
shadowResistanceRef:Ref[float]
|
||||
"""暗属性强化"""
|
||||
|
||||
# endregion
|
||||
|
||||
# region 基础属性
|
||||
|
||||
strengthRef:Ref[float]
|
||||
'''力量'''
|
||||
intelligenceRef:Ref[float]
|
||||
'''智力'''
|
||||
vitalityRef:Ref[float]
|
||||
'''体力'''
|
||||
spiritRef:Ref[float]
|
||||
'''精神'''
|
||||
physicalAtkRef:Ref[float]
|
||||
'''物理攻击力'''
|
||||
magicalAtkRef:Ref[float]
|
||||
'''魔法攻击力'''
|
||||
independentAtkRef:Ref[float]
|
||||
'''独立攻击力'''
|
||||
|
||||
# endregion
|
||||
|
||||
# 速度
|
||||
|
||||
movementSpeedRef:Ref[float]
|
||||
'''移动速度'''
|
||||
attackSpeedRef:Ref[float]
|
||||
'''攻击速度'''
|
||||
castingSpeedRef:Ref[float]
|
||||
'''施放速度'''
|
||||
|
||||
# endregion
|
||||
|
||||
def __init__(self):
|
||||
self.fireRef = ref(.0)
|
||||
self.waterRef = ref(.0)
|
||||
self.lightRef = ref(.0)
|
||||
self.shadowRef = ref(.0)
|
||||
self.fireResistanceRef = ref(.0)
|
||||
self.waterResistanceRef = ref(.0)
|
||||
self.lightResistanceRef = ref(.0)
|
||||
self.shadowResistanceRef = ref(.0)
|
||||
|
||||
@property
|
||||
def fire(self):
|
||||
@computed
|
||||
def _():
|
||||
return self.fireRef.value + 2
|
||||
return _()
|
||||
|
||||
|
||||
char = Character()
|
||||
|
||||
def entry_0(char:Character):
|
||||
char.fireRef.value = 19
|
||||
|
||||
def entry_1(char:Character):
|
||||
@effect
|
||||
def _():
|
||||
if char.fire < 20:
|
||||
char.waterRef.value = 10
|
||||
else:
|
||||
char.waterRef.value = 20
|
||||
|
||||
entry_1(char)
|
||||
entry_0(char)
|
||||
|
||||
print("冰强"+str(char.waterRef.value))
|
||||
print(char.fire)
|
||||
Reference in New Issue
Block a user