Post by Boaster on Sept 23, 2005 19:21:15 GMT -6
Recent update contains spell changes, and general coding information.
Contents of gs/speltool.gs
The following articles of code were added.
Spell changes
Asphyxiate affects Non-Air units at: 2 damage every 3 seconds, lasts 30 seconds, 20 total damage.
Asphyxiate affects Air units at: 1 damage every 3 seconds, lasts 30 seconds, 10 total damage.
Drowning affects Friendly Water units at: +1 life every second, for 20 seconds, 20 total life gained. Friendly Non-Water units go unaffected.
Drowning affects Enemy Non-Water units at: 1 damage every second, for 20 seconds, 20 total damage. Enemy Water units go unaffected.
Locust Swarm affects Friendly Undead units at: +1 life every second, for a total value equal to the (caster level). Friendly living units go unaffected.
Locust Swarm affects Enemy living units at: 1 damage every second, for a total value equal to the (caster level). Enemy Undead units go unaffected.
All offensive attack spells will heal units only up to (2 x maximum hit point) value, if the unit has 100%+ resistance to a given faith.
Future changes, including this can be found in ManTerA's GS MODs section of his website.
impz.xorgate.com/LOMSE/
Contents of gs/speltool.gs
The following articles of code were added.
/target_race{army_id unit_num UNITTYPE_RACE getuniteffectivedata}bind def
/target_max_hit_points{army_id unit_num UNITTYPE_MAX_HIT_POINTS getuniteffectivedata}bind def
/target_max_mana_points{army_id unit_num UNITTYPE_MAX_WIZARD_MANA getuniteffectivedata}bind def
/get_target_hit_points{army_id unit_num UNIT_HIT_POINTS getuniteffectivedata}bind def
/get_target_mana_points{army_id unit_num UNIT_WIZARD_MANA getuniteffectivedata}bind def
/copy_target_hit_points{army_id unit_num UNIT_HIT_POINTS 3 copy getunitdata}bind def
/copy_target_mana_points{army_id unit_num UNIT_WIZARD_MANA 3 copy getunitdata}bind def
/target_friends_in_radius{castdict begin /dummy begin /proc exch def
/source_army_id SPELL_BEING_CAST SI_CASTING_ARMY getspellinfo def
/source_unit_num SPELL_BEING_CAST SI_CASTING_UNIT getspellinfo def
/spelldef_id SPELL_BEING_CAST SI_TYPE getspellinfo def
/source_owner source_army_id ARMY_OWNER getarmydata def
target TARGET_ARMY eq{SPELL_BEING_CAST SI_ARMY_ID getspellinfo ARMY_LOCATION getarmydata xy_to_x_y}{target TARGET_LOCATION eq{SPELL_BEING_CAST SI_LOCATION getspellinfo xy_to_x_y}{source_army_id ARMY_LOCATION getarmydata xy_to_x_y}ifelse}ifelse target_radius{/army_id exch def army_id ARMY_OWNER getarmydata source_owner eq{0 1 army_id ARMY_NUM_UNITS getarmydata 1 sub{/unit_num exch def proc}for}if}enumarmiesinradius end end}/dummy 15 dict replace bind def
/target_any_in_radius{castdict begin /dummy begin /proc exch def
/source_army_id SPELL_BEING_CAST SI_CASTING_ARMY getspellinfo def
/source_unit_num SPELL_BEING_CAST SI_CASTING_UNIT getspellinfo def
/spelldef_id SPELL_BEING_CAST SI_TYPE getspellinfo def
/source_owner source_army_id ARMY_OWNER getarmydata def
target TARGET_ARMY eq{SPELL_BEING_CAST SI_ARMY_ID getspellinfo ARMY_LOCATION getarmydata xy_to_x_y}{target TARGET_LOCATION eq{SPELL_BEING_CAST SI_LOCATION getspellinfo xy_to_x_y}{source_army_id ARMY_LOCATION getarmydata xy_to_x_y}ifelse}ifelse target_radius{/army_id exch def army_id ARMY_OWNER getarmydata source_owner eq not army_id ARMY_OWNER getarmydata source_owner eq or{0 1 army_id ARMY_NUM_UNITS getarmydata 1 sub{/unit_num exch def proc}for}if}enumarmiesinradius end end}/dummy 15 dict replace bind def
/target_max_hit_points{army_id unit_num UNITTYPE_MAX_HIT_POINTS getuniteffectivedata}bind def
/target_max_mana_points{army_id unit_num UNITTYPE_MAX_WIZARD_MANA getuniteffectivedata}bind def
/get_target_hit_points{army_id unit_num UNIT_HIT_POINTS getuniteffectivedata}bind def
/get_target_mana_points{army_id unit_num UNIT_WIZARD_MANA getuniteffectivedata}bind def
/copy_target_hit_points{army_id unit_num UNIT_HIT_POINTS 3 copy getunitdata}bind def
/copy_target_mana_points{army_id unit_num UNIT_WIZARD_MANA 3 copy getunitdata}bind def
/target_friends_in_radius{castdict begin /dummy begin /proc exch def
/source_army_id SPELL_BEING_CAST SI_CASTING_ARMY getspellinfo def
/source_unit_num SPELL_BEING_CAST SI_CASTING_UNIT getspellinfo def
/spelldef_id SPELL_BEING_CAST SI_TYPE getspellinfo def
/source_owner source_army_id ARMY_OWNER getarmydata def
target TARGET_ARMY eq{SPELL_BEING_CAST SI_ARMY_ID getspellinfo ARMY_LOCATION getarmydata xy_to_x_y}{target TARGET_LOCATION eq{SPELL_BEING_CAST SI_LOCATION getspellinfo xy_to_x_y}{source_army_id ARMY_LOCATION getarmydata xy_to_x_y}ifelse}ifelse target_radius{/army_id exch def army_id ARMY_OWNER getarmydata source_owner eq{0 1 army_id ARMY_NUM_UNITS getarmydata 1 sub{/unit_num exch def proc}for}if}enumarmiesinradius end end}/dummy 15 dict replace bind def
/target_any_in_radius{castdict begin /dummy begin /proc exch def
/source_army_id SPELL_BEING_CAST SI_CASTING_ARMY getspellinfo def
/source_unit_num SPELL_BEING_CAST SI_CASTING_UNIT getspellinfo def
/spelldef_id SPELL_BEING_CAST SI_TYPE getspellinfo def
/source_owner source_army_id ARMY_OWNER getarmydata def
target TARGET_ARMY eq{SPELL_BEING_CAST SI_ARMY_ID getspellinfo ARMY_LOCATION getarmydata xy_to_x_y}{target TARGET_LOCATION eq{SPELL_BEING_CAST SI_LOCATION getspellinfo xy_to_x_y}{source_army_id ARMY_LOCATION getarmydata xy_to_x_y}ifelse}ifelse target_radius{/army_id exch def army_id ARMY_OWNER getarmydata source_owner eq not army_id ARMY_OWNER getarmydata source_owner eq or{0 1 army_id ARMY_NUM_UNITS getarmydata 1 sub{/unit_num exch def proc}for}if}enumarmiesinradius end end}/dummy 15 dict replace bind def
Spell changes
Asphyxiate affects Non-Air units at: 2 damage every 3 seconds, lasts 30 seconds, 20 total damage.
Asphyxiate affects Air units at: 1 damage every 3 seconds, lasts 30 seconds, 10 total damage.
Drowning affects Friendly Water units at: +1 life every second, for 20 seconds, 20 total life gained. Friendly Non-Water units go unaffected.
Drowning affects Enemy Non-Water units at: 1 damage every second, for 20 seconds, 20 total damage. Enemy Water units go unaffected.
Locust Swarm affects Friendly Undead units at: +1 life every second, for a total value equal to the (caster level). Friendly living units go unaffected.
Locust Swarm affects Enemy living units at: 1 damage every second, for a total value equal to the (caster level). Enemy Undead units go unaffected.
All offensive attack spells will heal units only up to (2 x maximum hit point) value, if the unit has 100%+ resistance to a given faith.
Future changes, including this can be found in ManTerA's GS MODs section of his website.
impz.xorgate.com/LOMSE/