Class BuyWeaponHighPirateActivityHalfSlotsFilledStrategy

  • All Implemented Interfaces:
    IAIBuyWeaponStrategy

    public class BuyWeaponHighPirateActivityHalfSlotsFilledStrategy
    extends BaseBuyWeaponStrategy
    Strategy to buy weapons when the pirate activity is high to fill half the ships slot with weapons.
    Author:
    Andi Hotz, (c) Sahits GmbH, 2017 Created on Oct 18, 2017
    • Constructor Detail

      • BuyWeaponHighPirateActivityHalfSlotsFilledStrategy

        public BuyWeaponHighPirateActivityHalfSlotsFilledStrategy()
    • Method Detail

      • shouldBuyWeapons

        public java.util.Optional<BuyWeapons> shouldBuyWeapons​(IShip ship,
                                                               IAIPlayer player,
                                                               ICity city)
        Weapons should be bought when:
        • There was a pirate attack every 2 weeks
        • There are free weapon slots
        • at least 10'000 cash is available
        Then the amounts are calculated:
        • one hand weapon per sailor
        • Half the amount of large weapons then there are slots
        • Half the amount of remaining open slots for small weapons
        • ~1/3 times the amount of free weapon slots as strength
        Parameters:
        ship - for which the weapons should be bought
        player - who is purchasing the weapons
        city - in which to buy weapons
        Returns:
        optional of BuyWeapons defining the target that should be reached. If the optional is not filled This means, no weapons should be bought.