Project

General

Profile

Feature #266 » 0025-Granularity-Add-Catapult.patch

main - Marko Lindqvist, 02/17/2024 01:09 AM

View differences:

data/granularity/README.granularity
* Fortifying is not possible before Trenches technology is known.
* Base city radius, both for workable area and vision,
extends one tile away from the center.
* Units with zero defense value can be captured by any military unit
data/granularity/actions.ruleset
; "Collect Ransom", "Attack", "Suicide Attack"
[actions]
; Forbid "Attack" if any one of the listed actions are legal.
attack_blocked_by = "Capture Units", "Bombard", "Bombard 2"
; Forbid "Conquer City" if any one of the listed actions are legal.
conquer_city_blocked_by = "Attack"
conquer_city_blocked_by = "Attack", "Bombard", "Bombard 2"
; Forbid regular unit move if one of the actions below is legal.
move_blocked_by = "Transport Disembark", "Transport Disembark 2"
......
; /* TRANS: _Fortify (100% chance of success). */
ui_name_fortify = _("%sFortify%s")
; /* TRANS: _Bombard (100% chance of success). */
ui_name_bombard_2 = _("%sBombard%s")
; /* TRANS: _Conquer City (100% chance of success). */
ui_name_conquer_city = _("%sConquer City%s")
......
"UnitState", "Transported", "Local", FALSE
}
[actionenabler_bombard_land]
action = "Bombard 2"
actor_reqs =
{ "type", "name", "range"
"UnitFlag", "Bombarder", "Local"
"MinMoveFrags", "5", "Local"
}
[actionenabler_surgical_strike]
action = "Surgical Strike Building"
actor_reqs =
{ "type", "name", "range"
"UnitFlag", "Bombarder", "Local"
"MinMoveFrags", "5", "Local"
}
[actionenabler_bombard]
action = "Bombard"
actor_reqs =
{ "type", "name", "range", "present"
"UnitClass", "Air", "Local", TRUE
{ "type", "name", "range"
"UnitClass", "Air", "Local"
"MinMoveFrags", "5", "Local"
}
[actionenabler_fortify]
......
"MaxUnitsOnTile", "0", "Tile", TRUE
}
[actionenabler_capture_defenseless]
action = "Capture Units"
actor_reqs =
{ "type", "name", "range"
"DiplRel", "War", "Local"
"MinMoveFrags", "1", "Local"
}
target_reqs =
{ "type", "name", "range", "present"
"UnitFlag", "Defenseless", "Local", TRUE
"UnitState", "Transporting", "Local", FALSE
"CityTile", "Center", "Tile", FALSE
}
[actionenabler_gain_veterancy]
action = "Gain Veterancy"
actor_reqs =
data/granularity/effects.ruleset
type = "Action_Success_Actor_Move_Cost"
value = 100
reqs =
{ "type", "name", "range", "present"
"Action", "Bombard", "Local", TRUE
{ "type", "name", "range", "present"
"Action", "Bombard", "Local", TRUE
}
[effect_action_success_short_range_bombard]
type = "Action_Success_Actor_Move_Cost"
value = 100
reqs =
{ "type", "name", "range", "present"
"Action", "Bombard 2", "Local", TRUE
}
[effect_action_success_surgical_strike]
type = "Action_Success_Actor_Move_Cost"
value = 100
reqs =
{ "type", "name", "range", "present"
"Action", "Surgical Strike Building", "Local", TRUE
}
[effect_no_tools]
data/granularity/techs.ruleset
graphic_alt = "-"
;helptext =
[advance_siege_engines]
name = _("Siege Engines")
req1 = "Rope"
req2 = "The Wheel"
flags = ""
graphic = "a.siege_engines"
graphic_alt = "-"
;helptext =
[advance_spirits]
name = _("Spirits")
req1 = "None"
data/granularity/units.ruleset
{ "name", "helptxt"
_("Cities")
_("Cant_Fortify")
_("Defenseless"), _("Can be captured by any military unit.")
_("Bombarder")
}
; Names for custom unit class flags. There can be up to 25 of these.
......
Horsemen are the first fast unit.\
")
[unit_catapuly]
name = _("Catapult")
class = "Land"
reqs =
{ "type", "name", "range"
"Tech", "Siege Engines", "Player"
}
obsolete_by = "None"
graphic = "u.catapult"
graphic_alt = "-"
sound_move = "m_catapult"
sound_move_alt = "m_generic"
sound_fight = "f_catapult"
sound_fight_alt = "f_generic"
build_cost = 3000
pop_cost = 0
attack = 50
defense = 0
hitpoints = 10
firepower = 1
move_rate = 30
bombard_rate = 2
vision_radius_sq = 2
transport_cap = 0
fuel = 0
uk_happy = 0
uk_shield = 100
uk_food = 0
uk_gold = 0
tp_defense = "Alight"
flags = "Defenseless", "Bombarder"
;roles =
helptext = _("\
Catapults are the first bombarding unit and it can also destroy buildings.\
")
[unit_bomber]
name = _("Bomber")
class = "Air"
......
hitpoints = 30
firepower = 1
move_rate = 100
bombard_rate = 5
bombard_rate = 8
vision_radius_sq = 2
transport_cap = 0
fuel = 0
(1-1/2)