Feature #174 » 0019-Add-hut-frightening-variants-of-teleport-actions.patch
| common/actions.c | ||
|---|---|---|
|                       TRUE, TRUE, | ||
|                       MAK_TELEPORT, 1, | ||
|                       ACTION_DISTANCE_MAX, FALSE); | ||
|   actions[ACTION_TELEPORT_FRIGHTEN] = | ||
|       unit_action_new(ACTION_TELEPORT_FRIGHTEN, | ||
|                       ACTRES_TELEPORT, | ||
|                       TRUE, TRUE, | ||
|                       MAK_TELEPORT, 1, | ||
|                       ACTION_DISTANCE_MAX, FALSE); | ||
|   actions[ACTION_TELEPORT_FRIGHTEN_CONQUER] = | ||
|       unit_action_new(ACTION_TELEPORT_FRIGHTEN_CONQUER, | ||
|                       ACTRES_TELEPORT_CONQUER, | ||
|                       TRUE, TRUE, | ||
|                       MAK_TELEPORT, 1, | ||
|                       ACTION_DISTANCE_MAX, FALSE); | ||
|   actions[ACTION_TELEPORT_ENTER] = | ||
|       unit_action_new(ACTION_TELEPORT_ENTER, | ||
|                       ACTRES_TELEPORT, | ||
| ... | ... | |
|     return "ui_name_teleport_3"; | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|     return "ui_name_teleport_conquer"; | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|     return "ui_name_teleport_frighten"; | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|     return "ui_name_teleport_frighten_conquer"; | ||
|   case ACTION_TELEPORT_ENTER: | ||
|     return "ui_name_teleport_enter"; | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
| ... | ... | |
|   case ACTION_TELEPORT_CONQUER: | ||
|     /* TRANS: _Teleport (100% chance of success). */ | ||
|     return N_("%sTeleport%s"); | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|     /* TRANS: _Teleport (100% chance of success). */ | ||
|     return N_("%sTeleport%s"); | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|     /* TRANS: _Teleport (100% chance of success). */ | ||
|     return N_("%sTeleport%s"); | ||
|   case ACTION_TELEPORT_ENTER: | ||
|     /* TRANS: _Teleport (100% chance of success). */ | ||
|     return N_("%sTeleport%s"); | ||
| ... | ... | |
|     return "teleport_3_min_range"; | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|     return "teleport_conquer_min_range"; | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|     return "teleport_frighten_min_range"; | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|     return "teleport_frighten_conquer_min_range"; | ||
|   case ACTION_TELEPORT_ENTER: | ||
|     return "teleport_enter_min_range"; | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
| ... | ... | |
|     return "teleport_3_max_range"; | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|     return "teleport_conquer_max_range"; | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|     return "teleport_frighten_max_range"; | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|     return "teleport_frighten_conquer_max_range"; | ||
|   case ACTION_TELEPORT_ENTER: | ||
|     return "teleport_enter_max_range"; | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
| ... | ... | |
|   case ACTION_TELEPORT2: | ||
|   case ACTION_TELEPORT3: | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|   case ACTION_TELEPORT_ENTER: | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
|   case ACTION_SPY_ESCAPE: | ||
| ... | ... | |
|   case ACTION_TELEPORT2: | ||
|   case ACTION_TELEPORT3: | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|   case ACTION_TELEPORT_ENTER: | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
|   case ACTION_GAIN_VETERANCY: | ||
| ... | ... | |
|     return "teleport_3_blocked_by"; | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|     return "teleport_conquer_blocked_by"; | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|     return "teleport_frighten_blocked_by"; | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|     return "teleport_frighten_conquer_blocked_by"; | ||
|   case ACTION_TELEPORT_ENTER: | ||
|     return "teleport_enter_blocked_by"; | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
| ... | ... | |
|   case ACTION_TELEPORT2: | ||
|   case ACTION_TELEPORT3: | ||
|   case ACTION_TELEPORT_CONQUER: | ||
|   case ACTION_TELEPORT_FRIGHTEN: | ||
|   case ACTION_TELEPORT_FRIGHTEN_CONQUER: | ||
|   case ACTION_TELEPORT_ENTER: | ||
|   case ACTION_TELEPORT_ENTER_CONQUER: | ||
|   case ACTION_GAIN_VETERANCY: | ||
| doc/README.actions | ||
|---|---|---|
| * the target tile can't contain any units not allied to the actor | ||
|   unit and all its cargo. | ||
| "Teleport Frighten" - teleport unit to the target tile. | ||
| * UI name can be set using ui_name_teleport_frighten | ||
| * any action listed in teleport_frighten_blocked_by must be impossible | ||
| * the range of legal distance between actor unit and target tile | ||
|   must be between teleport_frighten_min_range and teleport_frighten_max_range | ||
| * the actor unit may not be transported (!) | ||
| * the actor unit's type must be the target tile's terrain animal if the | ||
|   player's nation is an animal barbarian. | ||
| * the actor unit must be able to exist outside of a transport at the target | ||
|   tile. | ||
| * the actor unit doesn't have the "CoastStrict" unit type flag or the | ||
|   target tile is on or adjacent to a tile that doesn't have the | ||
|   "UnsafeCoast" terrain flag. | ||
| * the actor unit can't be diplomatically forbidden from entering the target | ||
|   tile. | ||
| * the target tile can't contain any city or units not allied to the actor | ||
|   unit and all its cargo. | ||
| * can result in hut frightening if | ||
|    - the target tile has an extra with "Enter" in its rmcauses (a Hut) | ||
|    - the target tile's Hut's rmreqs are fulfilled | ||
| "Teleport Frighten Conquer" - teleport unit to the target tile and conquer it | ||
| * UI name can be set using ui_name_teleport_frighten_conquer | ||
| * any action listed in teleport_frighten_conquer_blocked_by must be impossible | ||
| * the range of legal distance between actor unit and target tile | ||
|   must be between teleport_frighten_conquer_min_range and | ||
|   teleport_frighten_conquer_max_range | ||
| * the actor unit may not be transported (!) | ||
| * the actor unit's type must be the target tile's terrain animal if the | ||
|   player's nation is an animal barbarian. | ||
| * the actor unit must be able to exist outside of a transport at the target | ||
|   tile. | ||
| * the actor unit doesn't have the "CoastStrict" unit type flag or the | ||
|   target tile is on or adjacent to a tile that doesn't have the | ||
|   "UnsafeCoast" terrain flag. | ||
| * the actor unit can't be diplomatically forbidden from entering the target | ||
|   tile. | ||
| * the target tile can't contain any units not allied to the actor | ||
|   unit and all its cargo. | ||
| * can result in hut frightening if | ||
|    - the target tile has an extra with "Enter" in its rmcauses (a Hut) | ||
|    - the target tile's Hut's rmreqs are fulfilled | ||
| "Teleport Enter" - teleport unit to the target tile. | ||
| * UI name can be set using ui_name_teleport_enter | ||
| * any action listed in teleport_enter_blocked_by must be impossible | ||
| gen_headers/enums/actions_enums.def | ||
|---|---|---|
|   ACTION_TELEPORT2                        "Teleport2" | ||
|   ACTION_TELEPORT3                        "Teleport3" | ||
|   ACTION_TELEPORT_CONQUER                 "Teleport Conquer" | ||
|   ACTION_TELEPORT_FRIGHTEN                "Teleport Unit Frighten" | ||
|   ACTION_TELEPORT_FRIGHTEN_CONQUER        "Teleport Unit Frighten Conquer" | ||
|   ACTION_TELEPORT_ENTER                   "Teleport Unit Enter" | ||
|   ACTION_TELEPORT_ENTER_CONQUER           "Teleport Unit Enter Conquer" | ||
|   ACTION_CLEAN                            "Clean" | ||
| server/citytools.c | ||
|---|---|---|
|                                                ACTION_PARADROP_FRIGHTEN_CONQUER) | ||
|                         || utype_can_do_action(unit_type_get(punit), | ||
|                                                ACTION_PARADROP_ENTER_CONQUER) | ||
|                         || utype_can_do_action(unit_type_get(punit), | ||
|                                                ACTION_TELEPORT_FRIGHTEN_CONQUER) | ||
|                         || utype_can_do_action(unit_type_get(punit), | ||
|                                                ACTION_TELEPORT_ENTER_CONQUER), | ||
|                         FALSE, "Bad unit for city occupation."); | ||
| server/ruleset/ruleload.c | ||
|---|---|---|
|              ACT_SUB_RES_HUT_FRIGHTEN); | ||
|       BV_SET(action_by_number(ACTION_PARADROP_FRIGHTEN_CONQUER)->sub_results, | ||
|              ACT_SUB_RES_HUT_FRIGHTEN); | ||
|       BV_SET(action_by_number(ACTION_TELEPORT_FRIGHTEN)->sub_results, | ||
|              ACT_SUB_RES_HUT_FRIGHTEN); | ||
|       BV_SET(action_by_number(ACTION_TELEPORT_FRIGHTEN_CONQUER)->sub_results, | ||
|              ACT_SUB_RES_HUT_FRIGHTEN); | ||
|       /* Unit May Embark */ | ||
|       action_iterate(act_id) { | ||