Spaces:
Runtime error
Runtime error
| from base.attribute import Attribute | |
| from base.gain import Gain | |
| class FormationGain(Gain): | |
| gain_attributes: dict = {} | |
| core_gain_attributes: dict = {} | |
| rate_gain_attributes: dict = {} | |
| def __init__(self, rate=0, core_rate=0): | |
| super().__init__(type(self).__name__) | |
| self.rate = rate / 100 | |
| self.core_rate = core_rate / 100 | |
| def add_attribute(self, attribute: Attribute): | |
| for attr, value in self.gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) + value) | |
| for attr, value in self.core_gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) + int(value * self.core_rate)) | |
| for attr, value in self.rate_gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) + int(value * self.rate)) | |
| def sub_attribute(self, attribute: Attribute): | |
| for attr, value in self.gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) - value) | |
| for attr, value in self.core_gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) - int(value * self.core_rate)) | |
| for attr, value in self.rate_gain_attributes.items(): | |
| setattr(attribute, attr, getattr(attribute, attr) - int(value * self.rate)) | |
| class ä¹é³ę弦éµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 50, | |
| "magical_critical_strike_gain": 300, | |
| "magical_critical_power_gain": 51, | |
| } | |
| core_gain_attributes = {"magical_overcome_gain": 307} | |
| rate_gain_attributes = {"magical_attack_power_gain": 50} | |
| class äøē»éé„éµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "magical_overcome_gain": 300 | |
| } | |
| class å«å ¬ęå²éµ(FormationGain): | |
| gain_attributes = { | |
| "physical_attack_power_gain": 50, | |
| "physical_overcome_gain": 200 | |
| } | |
| core_gain_attributes = {"strength_gain": 10 * 5} | |
| rate_gain_attributes = {"physical_attack_power_gain": 51} | |
| class 天é¼é·é³éµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "strain_gain": 20, | |
| "magical_overcome_gain": 102 | |
| } | |
| rate_gain_attributes = {"magical_attack_power_gain": 21 * 5} | |
| class åęäøęéµ(FormationGain): | |
| gain_attributes = { | |
| "physical_critical_strike_gain": 300, | |
| "strain_gain": 20, | |
| "physical_critical_power_gain": 150 | |
| } | |
| rate_gain_attributes = {"physical_critical_strike_gain": 100 * 5} | |
| class ä¹å®«å «å¦éµ(FormationGain): | |
| gain_attributes = { | |
| "magical_critical_strike_gain": 300, | |
| "strain_gain": 20, | |
| "magical_critical_power_gain": 154 | |
| } | |
| rate_gain_attributes = {"magical_critical_strike_gain": 100 * 5} | |
| class ä¾å±±č§ę¾éµ(FormationGain): | |
| gain_attributes = { | |
| "agility_gain": 30, | |
| "physical_attack_power_gain": 51, | |
| "physical_critical_power_gain": 204 | |
| } | |
| class äøčå¬åæéµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "magical_critical_strike_gain": 300, | |
| "magical_critical_power_gain": 102 | |
| } | |
| core_gain_attributes = {"magical_attack_power_gain": 51} | |
| rate_gain_attributes = {"magical_overcome_gain": 102} | |
| class ęµęčµ¶ęéµ(FormationGain): | |
| gain_attributes = { | |
| "strength_gain": 30, | |
| "strain_gain": 20, | |
| "physical_overcome_gain": 205 | |
| } | |
| rate_gain_attributes = {"physical_critical_strike_gain": 500} | |
| class åęŗē¾åéµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "all_shield_ignore": 52, | |
| "all_critical_power_gain": 150 | |
| } | |
| rate_gain_attributes = {"all_critical_strike_gain": 500} | |
| class ēåØē “ééµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "magical_critical_strike_gain": 300, | |
| } | |
| core_gain_attributes = {"magical_critical_power_gain": 200} | |
| rate_gain_attributes = {"magical_critical_strike_gain": 1000} | |
| class éé¾ä¼čéµ(FormationGain): | |
| gain_attributes = { | |
| "physical_attack_power_gain": 50, | |
| "physical_overcome_gain": 102 | |
| } | |
| core_gain_attributes = {"physical_overcome_gain": 306} | |
| rate_gain_attributes = {"physical_overcome_base": 770 * 5} | |
| class éå横ē»éµ(FormationGain): | |
| gain_attributes = { | |
| "physical_critical_strike_gain": 300, | |
| "strain_gain": 20, | |
| } | |
| core_gain_attributes = {"physical_overcome_gain": 153} | |
| rate_gain_attributes = {"physical_critical_power_gain": 20 * 5} | |
| class äøē±é弦éµ(FormationGain): | |
| gain_attributes = { | |
| "magical_critical_strike_gain": 300, | |
| "strain_gain": 20, | |
| "magical_attack_power_gain": 102 | |
| } | |
| core_gain_attributes = {"magical_critical_power_gain": 205} | |
| rate_gain_attributes = {"magical_critical_strike_gain": 500} | |
| class éå²ę“ééµ(FormationGain): | |
| gain_attributes = { | |
| "physical_attack_power_gain": 50, | |
| "strain_gain": 20, | |
| "physical_overcome_gain": 102, | |
| } | |
| rate_gain_attributes = {"all_critical_strike_gain": 500} | |
| class å¢ęµ·å¼å½éµ(FormationGain): | |
| gain_attributes = { | |
| "physical_critical_strike_gain": 300, | |
| "physical_attack_power_gain": 133, | |
| "physical_overcome_gain": 102 | |
| } | |
| core_gain_attributes = {"physical_attack_power_gain": 51} | |
| class é¾ēéŖé£éµ(FormationGain): | |
| gain_attributes = { | |
| "physical_critical_strike_gain": 300, | |
| "physical_attack_power_gain": 50, | |
| "physical_critical_power_gain": 154, | |
| } | |
| core_gain_attributes = {"physical_critical_power_gain": 100} | |
| rate_gain_attributes = {"physical_attack_power_gain": 102} | |
| class ä¹ę游幓éµ(FormationGain): | |
| values = [102, 92, 82, 71, 61, 51, 41, 31, 20, 10] | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "strain_gain": 20, | |
| "magical_critical_power_gain": 100 | |
| } | |
| core_gain_attributes = {"magical_critical_power_gain": sum(values) / len(values)} | |
| rate_gain_attributes = {"all_damage_addition": int(154 / 2)} | |
| class ä¹±ę®ęµčµéµ(FormationGain): | |
| gain_attributes = { | |
| "magical_attack_power_gain": 51, | |
| "all_damage_addition": 31, | |
| "all_critical_strike_gain": 300 | |
| } | |
| class 横äŗē “ééµ(FormationGain): | |
| gain_attributes = { | |
| "physical_attack_power_gain": 50, | |
| "surplus_base": 1516, | |
| "physical_overcome_gain": 256 | |
| } | |
| core_gain_attributes = {"physical_critical_power_gain": 100} | |
| class č梧å¼ēµéµ(FormationGain): | |
| gain_attributes = { | |
| "all_critical_strike_gain": 300, | |
| "strain_gain": 20, | |
| "all_damage_addition": 62, | |
| } | |
| rate_gain_attributes = {"all_critical_power_gain": 150} | |
| FORMATIONS = { | |
| "": ["åęŗē¾åéµ", "č梧å¼ēµéµ"], | |
| "å¤å": [ | |
| "å«å ¬ęå²éµ", "åęäøęéµ", "ä¾å±±č§ę¾éµ", "ęµęčµ¶ęéµ", "éé¾ä¼čéµ", "éå横ē»éµ", "éå²ę“ééµ", "å¢ęµ·å¼å½éµ", | |
| "é¾ēéŖé£éµ", "横äŗē “ééµ" | |
| ], | |
| "å å": [ | |
| "ä¹é³ę弦éµ", "äøē»éé„éµ", "天é¼é·é³éµ", "ä¹å®«å «å¦éµ", "äøčå¬åæéµ", "ēåØē “ééµ", "äøē±é弦éµ", "ä¹ę游幓éµ", | |
| "ä¹±ę®ęµčµéµ" | |
| ] | |
| } | |
| # FORMATION_GAIN_NAMES = { | |
| # "ä¹é³ę弦éµ": "ä¹é³ę弦éµ(5%å ę»3%å ä¼5%å åä¼ę/5%å ę»)", | |
| # "äøē»éé„éµ": "äøē»éé„éµ(5%å ę»30%å ē “)", | |
| # "å«å ¬ęå²éµ": "å«å ¬ęå²éµ(5%å¤ę»20%å¤ē “/5%å¤ę»)", | |
| # "天é¼é·é³éµ": "天é¼é·é³éµ(5%å ę»2%ę å10%å ē “/5*2%å ę»)", | |
| # "åęäøęéµ": "åęäøęéµ(3%å¤ä¼2%ę å15%å¤åä¼ę/5*1%å¤ä¼)", | |
| # "ä¹å®«å «å¦éµ": "ä¹å®«å «å¦éµ(3%å ä¼2%ę å15%å åä¼ę/5*1%å ä¼)", | |
| # "ä¾å±±č§ę¾éµ": "ä¾å±±č§ę¾éµ(3%čŗ«ę³5%å¤ę»20%å¤ę»ä¼ę)", | |
| # "äøčå¬åæéµ": "äøčå¬åæéµ(5%å ę»3%å ä¼10%å åä¼ę/10%å ē “)", | |
| # "ęµęčµ¶ęéµ": "ęµęčµ¶ęéµ(3%åé2%ę å20%å¤ē “/5%å¤ä¼)", | |
| # "åęŗē¾åéµ": "åęŗē¾åéµ(5%å ę»5%ę č§15%ä¼ę/5%ä¼åæ)", | |
| # "ēåØē “ééµ": "ēåØē “ééµ(5%å ę»3%å ä¼/10%å ä¼)", | |
| # "éé¾ä¼čéµ": "éé¾ä¼čéµ(5%å¤ę»10%å¤ē “/5*770å¤ē “)", | |
| # "éå横ē»éµ": "éå横ē»éµ(3%å¤ä¼2%ę å/5*2%å¤åä¼ę)", | |
| # "äøē±é弦éµ": "äøē±é弦éµ(3%å ä¼2%ę å10%å ę»/5*1%å ä¼", | |
| # "éå²ę“ééµ": "éå²ę“ééµ(5%å¤ę»2%ę å10%å¤ē “/5%ä¼åæ)", | |
| # "å¢ęµ·å¼å½éµ": "å¢ęµ·å¼å½éµ(3%å¤ä¼10%å¤ę»10%å¤ē “)", | |
| # "é¾ēéŖé£éµ": "é¾ēéŖé£éµ(3%å¤ä¼5%å¤ę»15%å¤åä¼ę/10%å¤ę»)", | |
| # "ä¹ę游幓éµ": "ä¹ę游幓éµ(5%å ę»2%ę å10%å åä¼ę/15%伤害å¢å )", | |
| # "ä¹±ę®ęµčµéµ": "ä¹±ę®ęµčµéµ(5%å ę»3%伤害å¢å 3%ä¼åæ)", | |
| # "横äŗē “ééµ": "横äŗē “ééµ(5%å¤ę»1516ē “ę25%å¤ē “)", | |
| # "č梧å¼ēµéµ": "č梧å¼ēµéµ(3%ä¼åæ2%ę å6%伤害å¢å /15%ä¼ę)", | |
| # } | |
| FORMATION_GAINS = { | |
| formation: globals()[formation] | |
| for formations in FORMATIONS.values() for formation in formations | |
| } | |