Post by lemminkainen on Dec 6, 2020 9:51:46 GMT -6
As a kid, I would always play strategy games through the campaign with the thrill of encountering big fighting units like elephants in Age of Empires or ultralisks in Starcraft. When I first played LOM the same thing was expected, and I was indeed fascinated by fighting dragons or cyclops. One thing that escaped me, though, like probably most LOM player, is that LOM does have elephants! However, since it was implemented late in the game, it wasn't really added in many encounters, and the stats were incredibly weak, since it was considered for some reason the same strength as a scouting unit...
By modifying two files in gs.mpq, I can now, after more than twenty years of hopes from when I was a kid, make the elephant great again! I simply buffed the stats in pyele.gs and made the elephant occur in appropriate high level armies with makearmy.gs. Feel free all to use my work or modify it. Boaster, if you want to use it in the mod you can. Keep in mind that the campaign and the special encounters should probably be checked and modified to prevent incompatibilities. See quotes for modding details.
Replace the content of units/pyele.gs with this:
begin_unit_definition /name"Elephant"def /code ELE def /flags UNITTYPELAND CAN_ATTACK or CAN_DEFEND or CAN_BERSERK or def /race LESSER_STONE_GIANT def /faith EARTH def
/attack 20 def
/armor 16 def
/strength 25 def
/dexterity 6 def
/wisdom 26 def
/hit_points 60 def
/mps 11 def
/sight_radius 4 def
/stealth_noise_factor 12 def
/attack_recovery_ticks 16 def
/get_hit_recovery_ticks 6 def
/frames_per_grid 4 def
/recover_hitpoints_inside 8 def
/recover_hitpoints 8 def
/recover_hitpoints_moved 4 def
/health_bar_x -16 def
/health_bar_y -80 def
/morale_bar_x -12 def
/morale_bar_y -80 def
/missile_attack_resistance 25 def
/melee_attack_resistance 0 def
/earth_resistance 50 def
/death_resistance 25 def
/life_resistance -25 def
/air_resistance -50 def
/chaos_resistance 75 def
/order_resistance -75 def
/food_to_build 100 def
/gold_to_build 0 def
/magic_crystals_to_build 50 def
/initiates_to_build 0 def
/food_used_per_turn 4 def
/gold_used_per_turn 0 def
/magic_crystals_used_per_turn 0 def
/impfile_proc{"pyele"unittype_imp_filename}def /level_procedure{pop pop 8}bind def end_unit_definition /pyele exch def pyele MOVE pemov setunittypesound pyele DIE pedie setunittypesound pyele MELEE_ATTACK peatk setunittypesound pyele SELECT peselack setunittypesound pyele MOVE_ACKNOWLEDGE pemovack setunittypesound pyele ATTACK_ACKNOWLEDGE peatkack setunittypesound
/attack 20 def
/armor 16 def
/strength 25 def
/dexterity 6 def
/wisdom 26 def
/hit_points 60 def
/mps 11 def
/sight_radius 4 def
/stealth_noise_factor 12 def
/attack_recovery_ticks 16 def
/get_hit_recovery_ticks 6 def
/frames_per_grid 4 def
/recover_hitpoints_inside 8 def
/recover_hitpoints 8 def
/recover_hitpoints_moved 4 def
/health_bar_x -16 def
/health_bar_y -80 def
/morale_bar_x -12 def
/morale_bar_y -80 def
/missile_attack_resistance 25 def
/melee_attack_resistance 0 def
/earth_resistance 50 def
/death_resistance 25 def
/life_resistance -25 def
/air_resistance -50 def
/chaos_resistance 75 def
/order_resistance -75 def
/food_to_build 100 def
/gold_to_build 0 def
/magic_crystals_to_build 50 def
/initiates_to_build 0 def
/food_used_per_turn 4 def
/gold_used_per_turn 0 def
/magic_crystals_used_per_turn 0 def
/impfile_proc{"pyele"unittype_imp_filename}def /level_procedure{pop pop 8}bind def end_unit_definition /pyele exch def pyele MOVE pemov setunittypesound pyele DIE pedie setunittypesound pyele MELEE_ATTACK peatk setunittypesound pyele SELECT peselack setunittypesound pyele MOVE_ACKNOWLEDGE pemovack setunittypesound pyele ATTACK_ACKNOWLEDGE peatkack setunittypesound
Replace the /faithdecks array in gs/MAKEARMY5.gs with this:
/faithdecks
[
unittypedict begin
; [RANDOM CHAMPION] [WARRIOR] [THIEF] [WIZARD]
; [PACK SUMMON/MILITARY MIX] [INFANTRY] [CAVALRY] [MISSILE]
; [SCOUT] [PACK SUMMON] [SOLO SUMMON] [LEGENDARY SUMMON]
; LIFE
[
[lifit lifit lithf lithf liwiz liwiz] ; RCHAMP
[lifit lifit] [lithf lithf] [liwiz liwiz]
[liinf liinf licav licav licr1 aiwm1 orwmi] ; MIL MIX
[liinf liinf orwmi] ; INF
[licav licav orwmi] ; CAV
[limis limis orwmm] ; MIS
[licr4 licr4 aicr4] ; SCOUT
[licr1 licr1 aiwm1 liwm2] ; PACK SUMMON
[licr2 licr2 aiwm2 liwm1] ; SOLO SUMMON
[licr3 licr3 liwm1 pyele] ; BIG SUMMON
[licr5 licr5 aicr5] ; LEGENDARY SUMMON
]
; DEATH
[
[defit defit dethf dethf dewiz dewiz chwmf chwz2] ; RCHAMP
[defit defit chwmf] [dethf dethf] [dewiz dewiz chwz2]
[deinf deinf decav decav decr1 dewm1 chcr1 chwmi chwmc] ; MIL MIX
[deinf deinf chwmi] ; INF
[decav decav chwmc] ; CAV
[demis demis chwmm] ; MIS
[decr4 decr4 ficr4] ; SCOUT
[decr1 decr1 ficr1 chcr1 chwm1] ; PACK SUMMON
[decr2 decr2 dewm2 eacr2] ; SOLO SUMMON
[decr3 decr3 ficr2 pyele] ; BIG SUMMON
[ficr5 ficr5 ficr5] ; LEGENDARY SUMMON
]
; ORDER
[
[orfit orfit orthf orthf orwiz orwiz] ; RCHAMP
[orfit orfit] [orthf orthf] [orwiz orwiz]
[orinf orinf orcav orcav orcr1 orcr1 orcr2 orwmi orwmi chwm1 licr1 aicr2] ; MIL MIX
[orinf orinf orwmi] ; INF
[orcav orcav orwmi] ; CAV
[ormis ormis orwmm] ; MIS
[orcr4 orcr4 aicr4] ; SCOUT
[orcr2 orcr2 aicr2 chwm1 licr1] ; PACK SUMMON
[orcr1 orcr1 licr2 licr2 eacr2] ; SOLO SUMMON
[orcr3 orcr3 licr3 aicr3 chwm2 pyele] ; BIG SUMMON
[aicr5 aicr5 licr5] ; LEGENDARY SUMMON
]
; CHAOS
[
[chfit chfit chthf chthf chwiz chwiz chwmf chwz2] ; RCHAMP
[chfit chfit chwmf] [chthf chthf] [chwiz chwiz chwz2]
[chinf chinf chcav chcav chcr1 chcr1 chwmi chwmc chwm1 eacr1] ; MIL MIX
[chinf chinf eawmi chwmi] ; INF
[chcav chcav chwmc] ; CAV
[chmis chmis chwmm] ; MIS
[chcr4 chcr4 pygoa] ; SCOUT
[chcr1 chcr1 eacr1 chwm1] ; PACK SUMMON
[chcr2 chcr2 eacr2 aiwm2 liwm2] ; SOLO SUMMON
[chcr3 chcr3 eacr3 chwm2 liwm1 ficr2 ficr3 eawm1 pyele pyele pyele] ; BIG SUMMON
[chcr5 chcr5 eacr5] ; LEGENDARY SUMMON
]
; FIRE
[
[fifit fifit fithf fithf fiwiz fiwiz chfit] ; RCHAMP
[fifit fifit chfit] [fithf fithf] [fiwiz fiwiz]
[fiinf fiinf ficav ficav ficr1 chcr1 orcr2 chwmi chwmc] ; MIL MIX
[fiinf fiinf chwmi] ; INF
[ficav ficav chwmc] ; CAV
[fimis fimis chwmm] ; MIS
[ficr4 ficr4 decr4 chcr4] ; SCOUT
[ficr1 ficr1 orcr2 chcr1 chwm1] ; PACK SUMMON
[ficr2 ficr2 chcr2 eacr2 decr2] ; SOLO SUMMON
[ficr3 ficr3 chcr3 eawm1 pyele] ; BIG SUMMON
[ficr5 ficr5 chcr5] ; LEGENDARY SUMMON
]
; WATER
[
[wafit wafit wathf wathf wawiz wawiz watf1 watf1] ; RCHAMP
[wafit wafit] [wathf wathf watf1] [wawiz wawiz]
[wainf wainf wacav wacav wacr2 aicr2 eacr1 aiwm1 orcr2 orwmi] ; MIL MIX
[wainf wainf orwmi] ; INF
[wacav wacav orwmi] ; CAV
[wamis wamis orwmm] ; MIS
[wacr4 wacr4 aicr4] ; SCOUT
[wacr2 wacr2 aicr2 eacr1 aiwm1 orcr2] ; PACK SUMMON
[wawm2 orcr1 licr2 aicr1 eacr2 dewm2] ; SOLO SUMMON
[wawm2 orcr3 licr3 aicr3 wacr5 pyele] ; BIG SUMMON
[aicr5 licr5 ficr5] ; LEGENDARY SUMMON
]
; EARTH
[
[eafit eafit eathf eathf eawiz eawiz chwmf chwz2] ; RCHAMP
[eafit eafit chwmf] [eathf eathf] [eawiz eawiz chwz2]
[eainf eainf eacav eacav eacr1 chcr1 orcr2 eawmi chwmc chwmi] ; MIL MIX
[eainf eainf chwmi eawmi] ; INF
[eacav eacav chwmc] ; CAV
[eamis eamis chwmm] ; MIS
[eacr4 eacr4 pychi pygoa] ; SCOUT
[eacr1 eacr1 chcr1 orcr2] ; PACK SUMMON
[eacr2 eacr2 eawm1 chcr2] ; SOLO SUMMON
[eacr3 eawm1 licr3 aicr3 liwm1 pyele] ; BIG SUMMON
[eacr5 eacr5 chcr5] ; LEGENDARY SUMMON
]
; AIR
[
[aifit aifit aithf aithf aiwiz aiwiz] ; RCHAMP
[aifit aifit] [aithf aithf] [aiwiz aiwiz]
[aiinf aiinf aicav aicav aicr2 orcr2 orwmi orwmi] ; MIL MIX
[aiinf aiinf orwmi] ; INF
[aicav aicav orwmi] ; CAV
[aimis aimis orwmm] ; MIS
[aicr4 aicr4 pychi pygoa] ; SCOUT
[aicr2 aicr2 aiwm1 orcr2] ; PACK SUMMON
[aicr1 aicr1 orcr1 aiwm2 dewm2 liwm2] ; SOLO SUMMON
[aicr3 orcr3 liwm1 chwm2 pyele] ; BIG SUMMON
[aicr5 aicr5 ficr5] ; LEGENDARY SUMMON
]
end
]def
[
unittypedict begin
; [RANDOM CHAMPION] [WARRIOR] [THIEF] [WIZARD]
; [PACK SUMMON/MILITARY MIX] [INFANTRY] [CAVALRY] [MISSILE]
; [SCOUT] [PACK SUMMON] [SOLO SUMMON] [LEGENDARY SUMMON]
; LIFE
[
[lifit lifit lithf lithf liwiz liwiz] ; RCHAMP
[lifit lifit] [lithf lithf] [liwiz liwiz]
[liinf liinf licav licav licr1 aiwm1 orwmi] ; MIL MIX
[liinf liinf orwmi] ; INF
[licav licav orwmi] ; CAV
[limis limis orwmm] ; MIS
[licr4 licr4 aicr4] ; SCOUT
[licr1 licr1 aiwm1 liwm2] ; PACK SUMMON
[licr2 licr2 aiwm2 liwm1] ; SOLO SUMMON
[licr3 licr3 liwm1 pyele] ; BIG SUMMON
[licr5 licr5 aicr5] ; LEGENDARY SUMMON
]
; DEATH
[
[defit defit dethf dethf dewiz dewiz chwmf chwz2] ; RCHAMP
[defit defit chwmf] [dethf dethf] [dewiz dewiz chwz2]
[deinf deinf decav decav decr1 dewm1 chcr1 chwmi chwmc] ; MIL MIX
[deinf deinf chwmi] ; INF
[decav decav chwmc] ; CAV
[demis demis chwmm] ; MIS
[decr4 decr4 ficr4] ; SCOUT
[decr1 decr1 ficr1 chcr1 chwm1] ; PACK SUMMON
[decr2 decr2 dewm2 eacr2] ; SOLO SUMMON
[decr3 decr3 ficr2 pyele] ; BIG SUMMON
[ficr5 ficr5 ficr5] ; LEGENDARY SUMMON
]
; ORDER
[
[orfit orfit orthf orthf orwiz orwiz] ; RCHAMP
[orfit orfit] [orthf orthf] [orwiz orwiz]
[orinf orinf orcav orcav orcr1 orcr1 orcr2 orwmi orwmi chwm1 licr1 aicr2] ; MIL MIX
[orinf orinf orwmi] ; INF
[orcav orcav orwmi] ; CAV
[ormis ormis orwmm] ; MIS
[orcr4 orcr4 aicr4] ; SCOUT
[orcr2 orcr2 aicr2 chwm1 licr1] ; PACK SUMMON
[orcr1 orcr1 licr2 licr2 eacr2] ; SOLO SUMMON
[orcr3 orcr3 licr3 aicr3 chwm2 pyele] ; BIG SUMMON
[aicr5 aicr5 licr5] ; LEGENDARY SUMMON
]
; CHAOS
[
[chfit chfit chthf chthf chwiz chwiz chwmf chwz2] ; RCHAMP
[chfit chfit chwmf] [chthf chthf] [chwiz chwiz chwz2]
[chinf chinf chcav chcav chcr1 chcr1 chwmi chwmc chwm1 eacr1] ; MIL MIX
[chinf chinf eawmi chwmi] ; INF
[chcav chcav chwmc] ; CAV
[chmis chmis chwmm] ; MIS
[chcr4 chcr4 pygoa] ; SCOUT
[chcr1 chcr1 eacr1 chwm1] ; PACK SUMMON
[chcr2 chcr2 eacr2 aiwm2 liwm2] ; SOLO SUMMON
[chcr3 chcr3 eacr3 chwm2 liwm1 ficr2 ficr3 eawm1 pyele pyele pyele] ; BIG SUMMON
[chcr5 chcr5 eacr5] ; LEGENDARY SUMMON
]
; FIRE
[
[fifit fifit fithf fithf fiwiz fiwiz chfit] ; RCHAMP
[fifit fifit chfit] [fithf fithf] [fiwiz fiwiz]
[fiinf fiinf ficav ficav ficr1 chcr1 orcr2 chwmi chwmc] ; MIL MIX
[fiinf fiinf chwmi] ; INF
[ficav ficav chwmc] ; CAV
[fimis fimis chwmm] ; MIS
[ficr4 ficr4 decr4 chcr4] ; SCOUT
[ficr1 ficr1 orcr2 chcr1 chwm1] ; PACK SUMMON
[ficr2 ficr2 chcr2 eacr2 decr2] ; SOLO SUMMON
[ficr3 ficr3 chcr3 eawm1 pyele] ; BIG SUMMON
[ficr5 ficr5 chcr5] ; LEGENDARY SUMMON
]
; WATER
[
[wafit wafit wathf wathf wawiz wawiz watf1 watf1] ; RCHAMP
[wafit wafit] [wathf wathf watf1] [wawiz wawiz]
[wainf wainf wacav wacav wacr2 aicr2 eacr1 aiwm1 orcr2 orwmi] ; MIL MIX
[wainf wainf orwmi] ; INF
[wacav wacav orwmi] ; CAV
[wamis wamis orwmm] ; MIS
[wacr4 wacr4 aicr4] ; SCOUT
[wacr2 wacr2 aicr2 eacr1 aiwm1 orcr2] ; PACK SUMMON
[wawm2 orcr1 licr2 aicr1 eacr2 dewm2] ; SOLO SUMMON
[wawm2 orcr3 licr3 aicr3 wacr5 pyele] ; BIG SUMMON
[aicr5 licr5 ficr5] ; LEGENDARY SUMMON
]
; EARTH
[
[eafit eafit eathf eathf eawiz eawiz chwmf chwz2] ; RCHAMP
[eafit eafit chwmf] [eathf eathf] [eawiz eawiz chwz2]
[eainf eainf eacav eacav eacr1 chcr1 orcr2 eawmi chwmc chwmi] ; MIL MIX
[eainf eainf chwmi eawmi] ; INF
[eacav eacav chwmc] ; CAV
[eamis eamis chwmm] ; MIS
[eacr4 eacr4 pychi pygoa] ; SCOUT
[eacr1 eacr1 chcr1 orcr2] ; PACK SUMMON
[eacr2 eacr2 eawm1 chcr2] ; SOLO SUMMON
[eacr3 eawm1 licr3 aicr3 liwm1 pyele] ; BIG SUMMON
[eacr5 eacr5 chcr5] ; LEGENDARY SUMMON
]
; AIR
[
[aifit aifit aithf aithf aiwiz aiwiz] ; RCHAMP
[aifit aifit] [aithf aithf] [aiwiz aiwiz]
[aiinf aiinf aicav aicav aicr2 orcr2 orwmi orwmi] ; MIL MIX
[aiinf aiinf orwmi] ; INF
[aicav aicav orwmi] ; CAV
[aimis aimis orwmm] ; MIS
[aicr4 aicr4 pychi pygoa] ; SCOUT
[aicr2 aicr2 aiwm1 orcr2] ; PACK SUMMON
[aicr1 aicr1 orcr1 aiwm2 dewm2 liwm2] ; SOLO SUMMON
[aicr3 orcr3 liwm1 chwm2 pyele] ; BIG SUMMON
[aicr5 aicr5 ficr5] ; LEGENDARY SUMMON
]
end
]def