tukkek / javelin

Party-based roguelike (open-source strategy-RPG game).
https://javelinrl.wordpress.com/
64 stars 7 forks source link

Military district #50

Open tukkek opened 7 years ago

tukkek commented 7 years ago

Guardhouse/stronghold/fortress/citadel (5/10/15/20, requires hamlet/village/town/city): automatically kills an incursion in the distrcit up to the converted labor->level->EL, self destructs afterward.

tukkek commented 7 years ago

garrisson (military, 5)

    allow it and friendly towns to be activated from a distance
        maybe have a "Garrison" Interface that allows you to click on places from afar and move combatants to a new squad instead of picking them up? something like "Garrison.\nDo you want to evacuate these units from this location? (a, b, c)"
            Would still need an evacuate code. do we have a unified discharge() when Squads.isempty()? Could also be useful for this and when entering shops etc
    #automatic=false
    upgrade to Headquarters (15) to allow recruiting via labor from dwellings
        prerequisite: dwelling in district(s)
        maybe make it twice the price to give CPU advantage
tukkek commented 7 years ago

You should be able to build a castle (labor 20, requires town) and possibly place units inside It not only changes the (future) city map but also lets you place units before battle For ai that would be something like “ranged” behind moat, melees forward...

tukkek commented 7 years ago

Fighter guild Monk guild (monastery)

tukkek commented 7 years ago

Barracks: allows 1 teacher and 5 students per upgrade level. Each teacher gives 1d20 XP (capped by his Charisma score) per day, divided among students, which are automatically converted into a Warrior level once a student has enough for it.

The XP is not added directly to the student unit but to an internal map. Leaving the barracks mid-training wastes any progress made.

A teacher can only benefit students who are up to half his CR. When assigning a new teacher, sort by charisma and show both that value and max student level.

Requires a hamlet and can be updated up to level 4 with each city rank but cannot be upgraded if there are teacher or students on the premises.

hasupgraded() when a student cannot advance further. 'isworking` as long as the number of students isn't the same as the number of students who cannot advance further and at least a teacher is present.

Should allow for removing students and teachers remotely (just show a Javelin#choose() with each unit's name, role and whether can learn more or not) .

tukkek commented 7 years ago

Rally (non-automatic, requires village, cost=ritual.level): performs a random ritual (spell.isritual). Could have the same for Religious and Ecological (festival) #65 #66

Actually, these things have to be instantaneous (no cost), so maybe pick a ritual where caster level <= population and make sure a rally/festival cannot happen again in a month (use town#lastevent in validate()).

Since this can be applied to 3 different districts, might as well select a single ritual (or more) for each of them instead of making it random.

tukkek commented 6 years ago

Arms shop: specialized in Artifacts that boost damage.

tukkek commented 6 years ago

Memorial (10, requires village): +10% chance of turning a Town Event into a level-higher one instead.

tukkek commented 6 years ago

Increase authority (Town#size labor): adds -1% to chance of generating a Town event, down to 1%.

tukkek commented 6 years ago

Raise militia (0): generates a group of mercenaries with EL equal to Town#size and adds it to the Squad. If hostile, generates an Incursion of the same EL instead. If non-hostile and activated by the AI, does nothing instead.

tukkek commented 5 years ago

Arena: works like the Sewer.