diff --git a/dbupdate.py b/dbupdate.py index 310d532..87e4f89 100644 --- a/dbupdate.py +++ b/dbupdate.py @@ -8,3 +8,4 @@ database = Database() database.init(DATABASE) database.executescript(sys.argv[1]) + database.close() diff --git a/domain/refdata.py b/domain/refdata.py index 2ec9fb6..f2323cc 100644 --- a/domain/refdata.py +++ b/domain/refdata.py @@ -6,6 +6,7 @@ from enum import Enum from collections import defaultdict, namedtuple from config import REF_DATA_DIR +from domain.unknown import Unknown NON_HOME_CAPACITY = 15 BUILD_TICKS = 12 @@ -122,6 +123,14 @@ def cost(self) -> dict: def offense(self) -> float: op = self._data['power']['offense'] op += self.land_bonus('offense_from_land') + if self.has_perk('offense_raw_wizard_ratio'): + per_percent, max_bonus = self.get_perk('offense_raw_wizard_ratio') + if not isinstance(self.dom.cs, Unknown) and self.dom.cs['wpa']: + wpa = float(self.dom.cs['wpa']) + wpa_bonus = wpa * float(per_percent) + if wpa_bonus > float(max_bonus): + wpa_bonus = float(max_bonus) + op += wpa_bonus return op @property diff --git a/opsdata/schema-updates/update-1.1.sql b/opsdata/schema-updates/update-1.1.sql new file mode 100644 index 0000000..b12581d --- /dev/null +++ b/opsdata/schema-updates/update-1.1.sql @@ -0,0 +1,4 @@ +INSERT INTO SchemaVersion (timestamp, version) VALUES (DATETIME('now'), '1.1'); + +/* Add wpa column to deal with Icekin OP calc */ +ALTER TABLE ClearSight ADD COLUMN wpa REAL; diff --git a/opsdata/schema.py b/opsdata/schema.py index 899f8c8..9116eab 100644 --- a/opsdata/schema.py +++ b/opsdata/schema.py @@ -229,7 +229,8 @@ def query_last_ops(db): 'military_spies': 'status.military_spies|optional', 'military_assassins': 'status.military_assassins|optional', 'military_wizards': 'status.military_wizards|optional', - 'military_archmages': 'status.military_archmages|optional' + 'military_archmages': 'status.military_archmages|optional', + 'wpa': 'status.wpa|optional' }