-
-
Notifications
You must be signed in to change notification settings - Fork 105
Forcing specific weapon by target type #1631
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
Nightly build for this pull request:
This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build. |
besides, if you're certain that weapons of a techno won't make use of the following things, you can use this ability to make it skip previous weapon index picking logic, to save some calculation cost
a similar optimization was also made in #1568 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think after updating it, we can merge this.
By the way, my opinion on ForceWeapon.Naval
is probably like this, what do you think?
case AbstractType::Unit:
{
forceWeaponIndex = (this->ForceAAWeapon_Units >= 0 && pTarget->IsInAir())
? this->ForceAAWeapon_Units
: ((this->ForceWeapon_Naval >= 0 && pTargetType->Naval)
? this->ForceWeapon_Naval
: this->ForceWeapon_Units);
break;
}
|
610296a
to
4027758
Compare
In this case, I think it's necessary to further distinguish between vehicles and buildings that |
…type # Conflicts: # CREDITS.md # docs/New-or-Enhanced-Logics.md # src/Ext/Techno/Body.h # src/Ext/Techno/Hooks.Firing.cpp # src/Ext/Techno/WeaponHelpers.cpp # src/Ext/TechnoType/Body.cpp
4027758
to
5b4225b
Compare
This is a supplement for #1630. With multiple weapons being set, you can use
ForceWeapon
to enable them when attacking different targets. This pull request is a basic one that should be enough for many casesForceWeapon.Naval
forces specified weapon to be used againstNaval=yes
targets. Taking priority to other target type-based forced weapons.ForceWeapon.Defenses
is enabled, it'll be used if the target is a building withIsBaseDefense=yes
. Otherwise it'll followForceWeapon.Buildings
, if enabled.ForceWeapon.Infantry/Units/Aircraft
can be applied to both ground and air target ifForceAAWeapon.Infantry/Units/Aircraft
is not set.ForceAAWeapon.Infantry/Units/Aircraft
do the same things but only for air target. Taking priority toForceWeapon.Infantry/Units/Aircraft
, which means that they can only be applied to ground target when they're both set.In
rulesmd.ini
: