Uses of HasArmedShips..

For what's not in 'Top Priority Game Design'. Post your ideas, visions, suggestions for the game, rules, modifications, etc.

Moderator: Oberlus

Message
Author
Ophiuchus
Programmer
Posts: 2011
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Uses of HasArmedShips..

#1 Post by Ophiuchus »

As a sidetrack of proper damage estimation I am currently looking at the HasArmedShips fleet property and similar.
I split damage into structural damage against ships and the number of fighters a ship can destroy.

I suggest to base blockade etc on the ability of causing structural damage to ships. So flak or interceptors would not be able to blockade. Also if your ship has such a high shield value .

We are going for this: "if it can't do structural damage to your ship, it is not able to blockade it". Note that not everything which is able to do damage is necessarily able to blockade (e.g. planetary defenses).

Before there were the Ship::IsArmed and Fleet::HasArmedShips, which returned true if there were (hangars or direct weapons) with more than zero damage. I keep this as a notion: yes, this might be dangerous (sometimes). This is a simple best effort and might be wrong.
I introduce CanDamageShips and CanDestroyFighters which only return true if they are currently able to actually do damage (so CanDamageShips actually takes a target_shields argument). So at least CanDamageShips has to be true in order to be effectively Obstructive.
While it also follows the simple rule, stealth and detection is orthogonal in implementation.

Old uses of Ship::IsArmed
  • CombatSystem::ObjectCanAttack, needs both types of dameg -> fine
  • As alternative to HasFighters in FleetWnd::AggressionForFleet to make newly built ships Obstructive -> CanDamageShips
  • MapWnd: Display Armed/unarmed ships in map fleet statistics popup (top row) -> fine
  • To determine if to show amount structural ship damage and fighter destruction of a ship -> any type of damage is fine (or could be split)
  • Empire: Decision if to include newly built ship in combat fleet (alternative to HasFighters, CanHaveTroops or CanBombard) -> fine
  • Fleet::GenerateFleetName for new fleets (Fleet::IsCombatShip, alternative to HasFighters, CanHaveTroops or CanBombard)) -> fine
  • Effects: deciding default aggression for fleets created by CreateNewShip effect -> fine
  • Effects:keep aggression for armed fleets updated by SetOwner effect -> fine
  • Effects:keep aggression for armed fleets if having to create new fleet in MoveTo effect -> fine
  • Effects:keep aggression for armed fleets if having to create new fleet in MoveTowards effec -> fine
ShipDesign::IsArmed is true if the design has any dangerous direct weapons parts or (any dangerous hangars parts and a launch bay part). Dangerous means that the respecitve part capacity fields are higher than zero.
  • used in python (?)
Fleet::HasArmedShips is based on Ship::IsArmed. Current uses and suggestion:
  • Prevent unarmed monsters from starting combat -> CanDamageShips (or base this rather on monster aggressiveness which also can be scripted)
  • Prevent colonization -> CanDamageShips
  • Prevent monsters from leaving -> CanDamageShips
  • Block enemy Supply propagation (Supply.cpp) -> CanDamageShips
  • Block enemy Supply propagation (Empire::UpdateSupplyUnobstructedSystems) -> CanDamageShips
  • Fleet::BlockadedAtSystem -> CanDamageShips
  • As alternative to HasFighterShips for deciding the FleetHeadIcons -> this could be OK? maybe its more concise to also use CanDamageShips -> CanDamageShips
  • To determine if to show amount structural ship damage of a fleet -> CanDamageShips (could be merged with below)
  • To determine if to show amount of fighter destruction of a fleet -> CanDestroyFighters (could be merged with above)
  • Empire::CheckProductionProgress - Decide aggression for newly built ships -> any kind of damage should be ok
Armed condition (used in FOCS) also uses ship->IsArmed.
  • ObjectListWnd: Filtering in object list window -> fine, probably add CanDamageShips condition.
  • increase stability if armed ships in system for terror suppression policy -> in principle the bonus probably should only come from ships which can target planets(?), if we say the suppression comes from the military people this should actually include troop ships, fine for the moment
  • prevent monster_fleets from spawning in systems with armed ships or monsters -> ok
  • only apply species weapon traits for SR_WEAPON_ for armed ships -> any type of damage is good
  • only apply species weapon traits for FT_HANGAR_ for armed ships -> any type of damage is good
  • increase stealth of unarmed ships with krill spawner -> probably also support military craft should not get that stealth bonus, so fine
  • empire statistics: armed monsters, armed battleships -> fine, could add CanDamageShips condition
Also python uses those.
edit1: update after deciding to go for the "obstruction simple rule"
Last edited by Ophiuchus on Wed Apr 28, 2021 4:13 pm, edited 7 times in total.
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

Ophiuchus
Programmer
Posts: 2011
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Uses of HasArmedShips..

#2 Post by Ophiuchus »

I wrote too many details.
TLDR; the question is if the a notion "it can blockade if and only if it is able to damage ships in combat" is better than "it can blockade if it is able to either damage ships or is able to destroy fighters".
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12972
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Uses of HasArmedShips..

#3 Post by Geoff the Medio »

Ophiuchus wrote: Fri Apr 23, 2021 9:33 am...the question is if the a notion "it can blockade if and only if it is able to damage ships in combat" is better than "it can blockade if it is able to either damage ships or is able to destroy fighters".
I don't have a strong opinion. If you think one is better than the other, then I'm fine with changing it.

User avatar
Oberlus
Cosmic Dragon
Posts: 3532
Joined: Mon Apr 10, 2017 4:25 pm

Re: Uses of HasArmedShips..

#4 Post by Oberlus »

I like Ophiuchus proposal: do not let interceptor-only ships to blockade.

wobbly
Dyson Forest
Posts: 246
Joined: Thu Oct 10, 2013 6:48 pm

Re: Uses of HasArmedShips..

#5 Post by wobbly »

I think Ophi's suggestion is more logical, but is it more intuitive?

Basically if someone was a little unsure of the exact blockade rules which way would they guess?

User avatar
Oberlus
Cosmic Dragon
Posts: 3532
Joined: Mon Apr 10, 2017 4:25 pm

Re: Uses of HasArmedShips..

#6 Post by Oberlus »

wobbly wrote: Fri Apr 23, 2021 10:28 am Basically if someone was a little unsure of the exact blockade rules which way would they guess?
I guess we would find players of both opinions/expectations.
Documenting in the interceptor hangar that that weapon can't enforce blockade could solve the doubts for most people?

User avatar
LienRag
Vacuum Dragon
Posts: 510
Joined: Fri May 17, 2019 5:03 pm

Re: Uses of HasArmedShips..

#7 Post by LienRag »

Oberlus wrote: Fri Apr 23, 2021 10:20 am I like Ophiuchus proposal: do not let interceptor-only ships to blockade.
In the 15th game I used interceptors to blockade 0o1g's scouts so that I could bring armed ships to destroy them, I'm not sure that removing the option to do so improves the game ?

Ophiuchus
Programmer
Posts: 2011
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Uses of HasArmedShips..

#8 Post by Ophiuchus »

LienRag wrote: Fri Apr 23, 2021 3:03 pm
Oberlus wrote: Fri Apr 23, 2021 10:20 am I like Ophiuchus proposal: do not let interceptor-only ships to blockade.
In the 15th game I used interceptors to blockade 0o1g's scouts so that I could bring armed ships to destroy them, I'm not sure that removing the option to do so improves the game ?
? example totally misses the point - or taking it serious: do you suggest that allowing e.g. troop ships to blockade improves the game (because i totally would use those for the purpose if they did)
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
LienRag
Vacuum Dragon
Posts: 510
Joined: Fri May 17, 2019 5:03 pm

Re: Uses of HasArmedShips..

#9 Post by LienRag »

Well they're still warships...
Easy to bypass if the unarmed ships are escorted by direct weapon ships, but still warships.
So imho it adds diversity to the game.

Just my two PP, if you really want to change it I'm not going to fork the game for that.

User avatar
Geoff the Medio
Programming, Design, Admin
Posts: 12972
Joined: Wed Oct 08, 2003 1:33 am
Location: Munich

Re: Uses of HasArmedShips..

#10 Post by Geoff the Medio »

It can also be made into a game rule.

User avatar
Oberlus
Cosmic Dragon
Posts: 3532
Joined: Mon Apr 10, 2017 4:25 pm

Re: Uses of HasArmedShips..

#11 Post by Oberlus »

LienRag wrote: Fri Apr 23, 2021 4:06 pm Well they're still warships...
Easy to bypass if the unarmed ships are escorted by direct weapon ships, but still warships.
So imho it adds diversity to the game.
One could expect that troop ships could board non-warships?
IMO, the most reasonable is that ships that can't attack ships can't stop ships.
Diversity would be that some warships do blockade and others don't, so not allowing interceptors to blockade is what brings "diversity" in this case.

User avatar
Oberlus
Cosmic Dragon
Posts: 3532
Joined: Mon Apr 10, 2017 4:25 pm

Re: Uses of HasArmedShips..

#12 Post by Oberlus »

Geoff the Medio wrote: Fri Apr 23, 2021 4:14 pm It can also be made into a game rule.
That could work. I would set it always to interceptors and flaks can't blockade :D

Ophiuchus
Programmer
Posts: 2011
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Uses of HasArmedShips..

#13 Post by Ophiuchus »

Oberlus wrote: Fri Apr 23, 2021 6:03 pm IMO, the most reasonable is that ships that can't attack ships can't stop ships.
I think a slight variation of that is the best rule of thumb (and the main reason for putting this up): "Ships which are able to damage other ships can blockade those"

For the moment I would not want another game rule. I think there small decisions where one might want/need to weaken the rule of thumb and having to think of the alternative game with the other rule setting makes everything more complicated.

Example for such a case - one could argue that non-military vessels (supply lines) might be stopped by interceptors or even troop ships.

I want a rule of thumb for design reasons and then only good game-play reasons to depart from that rule. So I am convinced my example has not enough game play reason for departing from the rule. Of course if we reach freeorion 0.9 we could add such things for flavor (if this combat system still exists).

With that rule of thumb - a followup question: one should not be able to blockade ships with strong shields(!?)
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

User avatar
Oberlus
Cosmic Dragon
Posts: 3532
Joined: Mon Apr 10, 2017 4:25 pm

Re: Uses of HasArmedShips..

#14 Post by Oberlus »

Ophiuchus wrote: Sun Apr 25, 2021 12:58 pm "Ships which are able to damage other ships can blockade those"
That I meant, yes. "Attack" could be ambiguous, damage isn't.
Ophiuchus wrote: Sun Apr 25, 2021 12:58 pm one should not be able to blockade ships with strong shields(!?)
That could be interesting, giving strong-shield ships more use cases.
If the ship can't be damaged (despite being targetted/attacked with anti-ship weapons), combat would ensue but regardless of the results ships could ignore blockade net turn.

Does it make sense then that every ship that survives a combat can pass through blockades? I like it...

Ophiuchus
Programmer
Posts: 2011
Joined: Tue Sep 30, 2014 10:01 am
Location: Wall IV

Re: Uses of HasArmedShips..

#15 Post by Ophiuchus »

Oberlus wrote: Sun Apr 25, 2021 1:25 pm
Ophiuchus wrote: Sun Apr 25, 2021 12:58 pm one should not be able to blockade ships with strong shields(!?)
That could be interesting, giving strong-shield ships more use cases.
If the ship can't be damaged (despite being targetted/attacked with anti-ship weapons), combat would ensue but regardless of the results ships could ignore blockade net turn.
For those ships it would be mainly the same as it is for stealth ships now. You are forced to make a stop but can leave in any direction next turn.
Oberlus wrote: Sun Apr 25, 2021 1:25 pm Does it make sense then that every ship that survives a combat can pass through blockades? I like it...
I dont think so - it would make blockade worthless and blockade is a interesting gameplay element I think. Enabling/disabling ship blockade completely would be a worthwhile game rule I guess if someone wants to try. The suggestion to only blockade ships which got actually engaged/damaged in the last turn would be more interesting. It would give an extra use to smaller ship hulls as blockade breakers (more ships with the same PP, higher chance of not being damaged) or at least confusing the enemy (by giving more move options). Also arc disruptors would be good blockade weapons against non-shielded ships and pretty worthless for blockading shielded ships. I am not sure where that leads using the usual doomstack logics. (I think we already had part of this discussion somewhere in the forum)
Any code or patches in anything posted here is released under the CC and GPL licences in use for the FO project.

Look, ma... four combat bouts!

Post Reply