1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1596 lines
59 KiB

Scriptname CWSiegeScript extends Quest Conditional
{Extends Quest}
;*******************
;This script helps unify the Attack and Defend Quests for attacks and defenses of cities.
;It is essentially a collection of "arrays" of aliases and functions to setup/enable/reset/disable the references in those alisases in those "arrays"
;"Arrays" holding aliases pointing to soldier references placed in the world
;ImperialAttackerX - these mimic an array called "ImperialAttackerAliases" - (the ones pointing at specific references in the world who have the link refs)
;ImperialDefenderX - these mimic an array called "ImperialDefenderAliases" - (the ones pointing at specific references in the world who have the link refs)
;SonsAttackerX - these mimic an array called "SonsAttackerAliases" - (the ones pointing at specific references in the world who have the link refs)
;SonsDefenderX - these mimic an array called "SonsDefenderAliases" - (the ones pointing at specific references in the world who have the link refs)
;"Arrays" holding aliases that are used to put packages on the soldiers who are acting as Attackers or Defenders in this instance of the quest (in otherwords which of the above mentioned aliases are actually the attackers and defenders at this very moment)
;AttackerX - these mimic an array called "AttackerAliases" - (the ones with the packages and scripts to make the sieges work)
;DefenderX - these mimic an array called "DefenderAliases" - (the ones with the packages and scripts to make the sieges work)
;Functions to call from quest stage fragment script:
;RegisterXYZ() - this is how you pass aliases into the "array"
;DisableXYZ() - this is how you Disable all the references in aliases in the "array"
;EnableXYZ() - this is how you enable all the references in aliases in the "array"
;ResetXYZ() - this is how you Reset all the references in aliases in the "array"
;
;SetUpAliases(bool IsAttackQuest) - sets up, enables, and resets aliases as appropriate to the player faction and attacking Faction (it enables and resets all the generic and attacker/defender aliases, and GenericAttack or GenericDefend as appropriate to the TYPE of QUEST [IsAttackQuest] true = this is an attack on a city, false = this is a defense of a city)
;DisableAllAliases() - disables all the aliases registered into any of the "arrays" (strictly speaking it disables the generic aliases, and the Imperial/SonsAttacker/Defender aliases, not the Attacker/Defender aliases, but the Attacker/Defender aliases are just pointing at a subset of the Imperial/SonsAttacker/Defender aliases, so it amounts to the same thing)
;*******************
CWScript Property CWs Auto
GlobalVariable Property CWBattlePhase Auto
GlobalVariable Property CWStateAttackerAtGate Auto
GlobalVariable Property CWStateAttackerBrokeThrough Auto
GlobalVariable Property CWStateAttackerLowReinforcements Auto
GlobalVariable Property CWStateAttackerOutOfReinforcements Auto
GlobalVariable Property CWStateAttackStarted Auto
GlobalVariable Property CWStateDefenderFallingBack Auto
GlobalVariable Property CWStateDefenderLastStand Auto
GlobalVariable Property CWStateDefenderLowReinforcements Auto
GlobalVariable Property CWStateDefenderOutOfReinforcements Auto
bool Property DoneSettingUpAliases = False auto Hidden
bool Property DoneTurningOnAliases = False auto Hidden
bool Property WasThisAnAttack Auto hidden
bool DisabledFastTravel = false
bool Property AttackersHaveWon = false Auto Conditional
bool Property DefendersHaveWon = false Auto Conditional
Int Property CurrentCity Auto Conditional
{Gets set when CWSiege starts:
1 = Solitude
2 = Markarth
4 = Whiterun
8 = Windhelm
9 = Riften
}
LocationAlias Property City Auto
LocationAlias Property Hold Auto
;Pointers to references that handle the quest title text replacement
ObjectReference Property TextReplaceDEFENSE Auto
ObjectReference Property TextReplaceATTACK Auto
ReferenceAlias Property ObjAliasTextReplaceAttackDefend Auto
;sound control
MusicType Property MUSCombatCivilWar auto
sound Property AMBCombatSoundsLoop Auto
int CombatSoundsLoopInstance
Weather Property WeatherWhiterun Auto
Weather Property WeatherMarkarth Auto
Weather Property WeatherRiften Auto
Weather Property WeatherSolitude Auto
Weather Property WeatherWindhelm Auto
Explosion Property CWCatapultExp Auto
quest Property DA08 Auto
Quest Property SolitudeOpening Auto
Scene Property CWSiegeWhiterunDefendedScene Auto
Quest Property CWPostWhiterunObj Auto ;objective turned on in stage 200 in CWSiege quest, and completed in CWSiegeJarlThankYouTopic fragment in CW quest
MS11QuestScript Property MS11 Auto ;ised tp call a function on MS11 to help handle murder scene not occuring duing siege
; ## External Aliases ##
Quest Property CWSiegeObj Auto
LocationAlias Property CWSiegeObjCity Auto
ReferenceAlias Property CWSiegeObjCityGate Auto
ReferenceAlias Property CWSiegeObjJarl Auto
ReferenceAlias Property CWSiegeObjGeneral Auto
ReferenceAlias Property CWSiegeObjObjective1A Auto
ReferenceAlias Property CWSiegeObjObjective2A Auto
ReferenceAlias Property CWSiegeObjObjective3A Auto
ReferenceAlias Property CWSiegeObjObjective4A Auto
ReferenceAlias Property CWSiegeObjObjective1B Auto
ReferenceAlias Property CWSiegeObjObjective2B Auto
ReferenceAlias Property CWSiegeObjObjective3B Auto
ReferenceAlias Property CWSiegeObjObjective4B Auto
ReferenceAlias Property CWReservationsBalgruuf Auto
ReferenceAlias Property CWReservationsProventus Auto
ReferenceAlias Property CWReservationsIrileth Auto
;"Array" of aliases
;rather than declaring these again on all siege scripts, we will create a function that the quest fragment can pass in the Alias_XXX aliases and put them in the "array"
;Imperial Attacker/Defender aliases (the ones pointing at specific references in the world who have the link refs)
ReferenceAlias ImperialAttacker1
ReferenceAlias ImperialAttacker2
ReferenceAlias ImperialAttacker3
ReferenceAlias ImperialAttacker4
ReferenceAlias ImperialAttacker5
ReferenceAlias ImperialAttacker6
ReferenceAlias ImperialAttacker7
ReferenceAlias ImperialAttacker8
ReferenceAlias ImperialAttacker9
ReferenceAlias ImperialAttacker10
ReferenceAlias ImperialDefender1
ReferenceAlias ImperialDefender2
ReferenceAlias ImperialDefender3
ReferenceAlias ImperialDefender4
ReferenceAlias ImperialDefender5
ReferenceAlias ImperialDefender6
ReferenceAlias ImperialDefender7
ReferenceAlias ImperialDefender8
ReferenceAlias ImperialDefender9
ReferenceAlias ImperialDefender10
;Sons Attacker/Defender aliases (the ones pointing at specific references in the world who have the link refs)
ReferenceAlias SonsAttacker1
ReferenceAlias SonsAttacker2
ReferenceAlias SonsAttacker3
ReferenceAlias SonsAttacker4
ReferenceAlias SonsAttacker5
ReferenceAlias SonsAttacker6
ReferenceAlias SonsAttacker7
ReferenceAlias SonsAttacker8
ReferenceAlias SonsAttacker9
ReferenceAlias SonsAttacker10
ReferenceAlias SonsDefender1
ReferenceAlias SonsDefender2
ReferenceAlias SonsDefender3
ReferenceAlias SonsDefender4
ReferenceAlias SonsDefender5
ReferenceAlias SonsDefender6
ReferenceAlias SonsDefender7
ReferenceAlias SonsDefender8
ReferenceAlias SonsDefender9
ReferenceAlias SonsDefender10
;Attacker/Defender Aliases (the ones with the packages and scripts to make the sieges work, the above aliases will be shoved into these depending on who is attacking/defending)
ReferenceAlias Attacker1
ReferenceAlias Attacker2
ReferenceAlias Attacker3
ReferenceAlias Attacker4
ReferenceAlias Attacker5
ReferenceAlias Attacker6
ReferenceAlias Attacker7
ReferenceAlias Attacker8
ReferenceAlias Attacker9
ReferenceAlias Attacker10
ReferenceAlias Defender1
ReferenceAlias Defender2
ReferenceAlias Defender3
ReferenceAlias Defender4
ReferenceAlias Defender5
ReferenceAlias Defender6
ReferenceAlias Defender7
ReferenceAlias Defender8
ReferenceAlias Defender9
ReferenceAlias Defender10
;Generic "array" of aliases of things we want to enable/reset/disable as a group (things like fires, catapolts, barricades, etc.)
ReferenceAlias Generic1
ReferenceAlias Generic2
ReferenceAlias Generic3
ReferenceAlias Generic4
ReferenceAlias Generic5
ReferenceAlias Generic6
ReferenceAlias Generic7
ReferenceAlias Generic8
ReferenceAlias Generic9
ReferenceAlias Generic10
ReferenceAlias Generic11
ReferenceAlias Generic12
ReferenceAlias Generic13
ReferenceAlias Generic14
ReferenceAlias Generic15
ReferenceAlias Generic16
ReferenceAlias Generic17
ReferenceAlias Generic18
ReferenceAlias Generic19
ReferenceAlias Generic20
ReferenceAlias Generic21
ReferenceAlias Generic22
ReferenceAlias Generic23
ReferenceAlias Generic24
ReferenceAlias Generic25
ReferenceAlias Generic26
ReferenceAlias Generic27
ReferenceAlias Generic28
ReferenceAlias Generic29
ReferenceAlias Generic30
;For ATTACK quests -Generic "array" of aliases of things we want to enable/reset/disable as a group (things like fires, catapolts, barricades, etc.)
ReferenceAlias GenericAttack1
ReferenceAlias GenericAttack2
ReferenceAlias GenericAttack3
ReferenceAlias GenericAttack4
ReferenceAlias GenericAttack5
ReferenceAlias GenericAttack6
ReferenceAlias GenericAttack7
ReferenceAlias GenericAttack8
ReferenceAlias GenericAttack9
ReferenceAlias GenericAttack10
ReferenceAlias GenericAttack11
ReferenceAlias GenericAttack12
ReferenceAlias GenericAttack13
ReferenceAlias GenericAttack14
ReferenceAlias GenericAttack15
ReferenceAlias GenericAttack16
ReferenceAlias GenericAttack17
ReferenceAlias GenericAttack18
ReferenceAlias GenericAttack19
ReferenceAlias GenericAttack20
ReferenceAlias GenericAttack21
ReferenceAlias GenericAttack22
ReferenceAlias GenericAttack23
ReferenceAlias GenericAttack24
ReferenceAlias GenericAttack25
ReferenceAlias GenericAttack26
ReferenceAlias GenericAttack27
ReferenceAlias GenericAttack28
ReferenceAlias GenericAttack29
ReferenceAlias GenericAttack30
;For DEFEND quests -Generic "array" of aliases of things we want to enable/reset/disable as a group (things like fires, catapolts, barricades, etc.)
ReferenceAlias GenericDefend1
ReferenceAlias GenericDefend2
ReferenceAlias GenericDefend3
ReferenceAlias GenericDefend4
ReferenceAlias GenericDefend5
ReferenceAlias GenericDefend6
ReferenceAlias GenericDefend7
ReferenceAlias GenericDefend8
ReferenceAlias GenericDefend9
ReferenceAlias GenericDefend10
ReferenceAlias GenericDefend11
ReferenceAlias GenericDefend12
ReferenceAlias GenericDefend13
ReferenceAlias GenericDefend14
ReferenceAlias GenericDefend15
ReferenceAlias GenericDefend16
ReferenceAlias GenericDefend17
ReferenceAlias GenericDefend18
ReferenceAlias GenericDefend19
ReferenceAlias GenericDefend20
ReferenceAlias GenericDefend21
ReferenceAlias GenericDefend22
ReferenceAlias GenericDefend23
ReferenceAlias GenericDefend24
ReferenceAlias GenericDefend25
ReferenceAlias GenericDefend26
ReferenceAlias GenericDefend27
ReferenceAlias GenericDefend28
ReferenceAlias GenericDefend29
ReferenceAlias GenericDefend30
ReferenceAlias AttackerSonsCampMapMarker
Referencealias AttackerImperialCampMapMarker
ReferenceAlias MapMarkerToDisable1
ReferenceAlias MapMarkerToDisable2
ReferenceAlias MapMarkerToDisable3
ReferenceAlias MapMarkerToDisable4
ReferenceAlias MapMarkerToDisable5
ReferenceAlias MapMarkerToDisable6
ReferenceAlias MapMarkerToDisable7
ReferenceAlias MapMarkerToDisable8
ReferenceAlias MapMarkerToDisable9
ReferenceAlias MapMarkerToDisable10
ReferenceAlias MapMarkerToDisable11
ReferenceAlias MapMarkerToDisable12
ReferenceAlias MapMarkerToDisable13
ReferenceAlias MapMarkerToDisable14
ReferenceAlias MapMarkerToDisable15
ReferenceAlias MapMarkerToDisable16
function RegisterMapMarkerAliases(ReferenceAlias AttackerSonsCampMapMarkerAlias, ReferenceAlias AttackerImperialCampMapMarkerAlias, \
ReferenceAlias MapMarkerToDisable1Alias, \
ReferenceAlias MapMarkerToDisable2Alias, \
ReferenceAlias MapMarkerToDisable3Alias, \
ReferenceAlias MapMarkerToDisable4Alias, \
ReferenceAlias MapMarkerToDisable5Alias, \
ReferenceAlias MapMarkerToDisable6Alias, \
ReferenceAlias MapMarkerToDisable7Alias, \
ReferenceAlias MapMarkerToDisable8Alias, \
ReferenceAlias MapMarkerToDisable9Alias, \
ReferenceAlias MapMarkerToDisable10Alias, \
ReferenceAlias MapMarkerToDisable11Alias, \
ReferenceAlias MapMarkerToDisable12Alias, \
ReferenceAlias MapMarkerToDisable13Alias, \
ReferenceAlias MapMarkerToDisable14Alias, \
ReferenceAlias MapMarkerToDisable15Alias, \
ReferenceAlias MapMarkerToDisable16Alias)
AttackerSonsCampMapMarker = AttackerSonsCampMapMarkerAlias
AttackerImperialCampMapMarker = AttackerImperialCampMapMarkerAlias
MapMarkerToDisable1 = MapMarkerToDisable1Alias
MapMarkerToDisable2 = MapMarkerToDisable2Alias
MapMarkerToDisable3 = MapMarkerToDisable3Alias
MapMarkerToDisable4 = MapMarkerToDisable4Alias
MapMarkerToDisable5 = MapMarkerToDisable5Alias
MapMarkerToDisable6 = MapMarkerToDisable6Alias
MapMarkerToDisable7 = MapMarkerToDisable7Alias
MapMarkerToDisable8 = MapMarkerToDisable8Alias
MapMarkerToDisable9 = MapMarkerToDisable9Alias
MapMarkerToDisable10 = MapMarkerToDisable10Alias
MapMarkerToDisable11 = MapMarkerToDisable11Alias
MapMarkerToDisable12 = MapMarkerToDisable12Alias
MapMarkerToDisable13 = MapMarkerToDisable13Alias
MapMarkerToDisable14 = MapMarkerToDisable14Alias
MapMarkerToDisable15 = MapMarkerToDisable15Alias
MapMarkerToDisable16 = MapMarkerToDisable16Alias
EndFunction
function ToggleMapMarkersAndFastTravelStartBattle(bool isAttackQuest)
; CWScript.Log("CWSiegeScript", self + "ToggleMapMarkersAndFastTravelStartBattle()")
isAttackQuest = WasThisAnAttack ;added this late in the game (set in stage 0), easier to just do this than fix all instances that call this function and pass in a param
DisabledFastTravel = false ;clear it to be on the safe side
if isAttackQuest
if CWs.PlayerAllegiance == 1
AttackerImperialCampMapMarker.TryToEnable()
elseif CWs.PlayerAllegiance == 2
AttackerSonsCampMapMarker.TryToEnable()
endif
MapMarkerToDisable1.TryToDisable()
MapMarkerToDisable2.TryToDisable()
MapMarkerToDisable3.TryToDisable()
MapMarkerToDisable4.TryToDisable()
MapMarkerToDisable5.TryToDisable()
MapMarkerToDisable6.TryToDisable()
MapMarkerToDisable7.TryToDisable()
MapMarkerToDisable8.TryToDisable()
MapMarkerToDisable9.TryToDisable()
MapMarkerToDisable10.TryToDisable()
MapMarkerToDisable11.TryToDisable()
MapMarkerToDisable12.TryToDisable()
MapMarkerToDisable13.TryToDisable()
MapMarkerToDisable14.TryToDisable()
MapMarkerToDisable15.TryToDisable()
MapMarkerToDisable16.TryToDisable()
Else
; CWScript.Log("CWSiegeScript", self + "DISABLING FAST TRAVEL!", 1, true, True)
Game.EnableFastTravel(false)
DisabledFastTravel = true
EndIf
EndFunction
function ToggleMapMarkersAndFastTravelEndBattle(bool isAttackQuest)
; CWScript.Log("CWSiegeScript", self + "ToggleMapMarkersAndFastTravelEndBattle()")
isAttackQuest = WasThisAnAttack ;added this late in the game (set in stage 0), easier to just do this than fix all instances that call this function and pass in a param
if isAttackQuest
AttackerImperialCampMapMarker.TryToDisable()
AttackerSonsCampMapMarker.TryToDisable()
MapMarkerToDisable1.TryToEnable()
MapMarkerToDisable2.TryToEnable()
MapMarkerToDisable3.TryToEnable()
MapMarkerToDisable4.TryToEnable()
MapMarkerToDisable5.TryToEnable()
MapMarkerToDisable6.TryToEnable()
MapMarkerToDisable7.TryToEnable()
MapMarkerToDisable8.TryToEnable()
MapMarkerToDisable9.TryToEnable()
MapMarkerToDisable10.TryToEnable()
MapMarkerToDisable11.TryToEnable()
MapMarkerToDisable12.TryToEnable()
MapMarkerToDisable13.TryToEnable()
MapMarkerToDisable14.TryToEnable()
MapMarkerToDisable15.TryToEnable()
MapMarkerToDisable16.TryToEnable()
Else
if DisabledFastTravel == true ;reminder why I am checking this: I need to check to make sure this quest actually disabled fast travel before turning it on again, because this might start/fail offscreen and I need to make sure I don't enable fast travel if the player didn't get involved
; CWScript.Log("CWSiegeScript", self + "ENABLING FAST TRAVEL!", 1, true, True)
Game.EnableFastTravel(true)
DisabledFastTravel = False
endif
EndIf
EndFunction
;Register functions essentially shove the aliases from the quest into arrays to be used more conveniently by other function calls
;Register Imperial aliases
Function RegisterImperialAttackerAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterImperialAttackerAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
ImperialAttacker1 = RefAlias1
ImperialAttacker2 = RefAlias2
ImperialAttacker3 = RefAlias3
ImperialAttacker4 = RefAlias4
ImperialAttacker5 = RefAlias5
ImperialAttacker6 = RefAlias6
ImperialAttacker7 = RefAlias7
ImperialAttacker8 = RefAlias8
ImperialAttacker9 = RefAlias9
ImperialAttacker10 = RefAlias10
EndFunction
Function RegisterImperialDefenderAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterImperialDefenderAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
ImperialDefender1 = RefAlias1
ImperialDefender2 = RefAlias2
ImperialDefender3 = RefAlias3
ImperialDefender4 = RefAlias4
ImperialDefender5 = RefAlias5
ImperialDefender6 = RefAlias6
ImperialDefender7 = RefAlias7
ImperialDefender8 = RefAlias8
ImperialDefender9 = RefAlias9
ImperialDefender10 = RefAlias10
EndFunction
;Register Sons aliases
Function RegisterSonsAttackerAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterSonsAttackerAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
SonsAttacker1 = RefAlias1
SonsAttacker2 = RefAlias2
SonsAttacker3 = RefAlias3
SonsAttacker4 = RefAlias4
SonsAttacker5 = RefAlias5
SonsAttacker6 = RefAlias6
SonsAttacker7 = RefAlias7
SonsAttacker8 = RefAlias8
SonsAttacker9 = RefAlias9
SonsAttacker10 = RefAlias10
EndFunction
Function RegisterSonsDefenderAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterSonsDefenderAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
SonsDefender1 = RefAlias1
SonsDefender2 = RefAlias2
SonsDefender3 = RefAlias3
SonsDefender4 = RefAlias4
SonsDefender5 = RefAlias5
SonsDefender6 = RefAlias6
SonsDefender7 = RefAlias7
SonsDefender8 = RefAlias8
SonsDefender9 = RefAlias9
SonsDefender10 = RefAlias10
EndFunction
;Register Attacker Aliases
Function RegisterAttackerAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterAttackerAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
Attacker1 = RefAlias1
Attacker2 = RefAlias2
Attacker3 = RefAlias3
Attacker4 = RefAlias4
Attacker5 = RefAlias5
Attacker6 = RefAlias6
Attacker7 = RefAlias7
Attacker8 = RefAlias8
Attacker9 = RefAlias9
Attacker10 = RefAlias10
EndFunction
;Register Defender Aliases
Function RegisterDefenderAliases(ReferenceAlias RefAlias1, ReferenceAlias RefAlias2, ReferenceAlias RefAlias3, ReferenceAlias RefAlias4, ReferenceAlias RefAlias5, ReferenceAlias RefAlias6, ReferenceAlias RefAlias7, ReferenceAlias RefAlias8, ReferenceAlias RefAlias9, ReferenceAlias RefAlias10 )
; CWScript.Log("CWSiegeScript", self + "calling RegisterDefenderAliases()" + RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 )
Defender1 = RefAlias1
Defender2 = RefAlias2
Defender3 = RefAlias3
Defender4 = RefAlias4
Defender5 = RefAlias5
Defender6 = RefAlias6
Defender7 = RefAlias7
Defender8 = RefAlias8
Defender9 = RefAlias9
Defender10 = RefAlias10
EndFunction
;Register Generic Aliases
Function RegisterGenericAliases( \
ReferenceAlias RefAlias1, ReferenceAlias RefAlias2 = None, ReferenceAlias RefAlias3 = None, ReferenceAlias RefAlias4 = None, ReferenceAlias RefAlias5 = None, ReferenceAlias RefAlias6 = None, ReferenceAlias RefAlias7 = None, ReferenceAlias RefAlias8 = None, ReferenceAlias RefAlias9 = None, ReferenceAlias RefAlias10 = None, \
ReferenceAlias RefAlias11 = None, ReferenceAlias RefAlias12 = None, ReferenceAlias RefAlias13 = None, ReferenceAlias RefAlias14 = None, ReferenceAlias RefAlias15 = None, ReferenceAlias RefAlias16 = None, ReferenceAlias RefAlias17 = None, ReferenceAlias RefAlias18 = None, ReferenceAlias RefAlias19 = None, ReferenceAlias RefAlias20 = None, \
ReferenceAlias RefAlias21 = None, ReferenceAlias RefAlias22 = None, ReferenceAlias RefAlias23 = None, ReferenceAlias RefAlias24 = None, ReferenceAlias RefAlias25 = None, ReferenceAlias RefAlias26 = None, ReferenceAlias RefAlias27 = None, ReferenceAlias RefAlias28 = None, ReferenceAlias RefAlias29 = None, ReferenceAlias RefAlias30 = None \
)
; CWScript.Log("CWSiegeScript", self + "calling RegisterGenericAliases()" + \
; RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 + "," + \
; RefAlias11 + "," + RefAlias12 + "," + RefAlias13 + "," + RefAlias14 + "," + RefAlias15 + "," + RefAlias16 + "," + RefAlias17 + "," + RefAlias18 + "," + RefAlias19 + "," + RefAlias20 + "," + \
; RefAlias21 + "," + RefAlias22 + "," + RefAlias23 + "," + RefAlias24 + "," + RefAlias25 + "," + RefAlias26 + "," + RefAlias27 + "," + RefAlias28 + "," + RefAlias29 + "," + RefAlias30 + "," \
; )
Generic1 = RefAlias1
Generic2 = RefAlias2
Generic3 = RefAlias3
Generic4 = RefAlias4
Generic5 = RefAlias5
Generic6 = RefAlias6
Generic7 = RefAlias7
Generic8 = RefAlias8
Generic9 = RefAlias9
Generic10 = RefAlias10
Generic11 = RefAlias11
Generic12 = RefAlias12
Generic13 = RefAlias13
Generic14 = RefAlias14
Generic15 = RefAlias15
Generic16 = RefAlias16
Generic17 = RefAlias17
Generic18 = RefAlias18
Generic19 = RefAlias19
Generic20 = RefAlias20
Generic21 = RefAlias21
Generic22 = RefAlias22
Generic23 = RefAlias23
Generic24 = RefAlias24
Generic25 = RefAlias25
Generic26 = RefAlias26
Generic27 = RefAlias27
Generic28 = RefAlias28
Generic29 = RefAlias29
Generic30 = RefAlias30
EndFunction
;Register GenericAttack Aliases
Function RegisterGenericAttackAliases( \
ReferenceAlias RefAlias1, ReferenceAlias RefAlias2 = None, ReferenceAlias RefAlias3 = None, ReferenceAlias RefAlias4 = None, ReferenceAlias RefAlias5 = None, ReferenceAlias RefAlias6 = None, ReferenceAlias RefAlias7 = None, ReferenceAlias RefAlias8 = None, ReferenceAlias RefAlias9 = None, ReferenceAlias RefAlias10 = None, \
ReferenceAlias RefAlias11 = None, ReferenceAlias RefAlias12 = None, ReferenceAlias RefAlias13 = None, ReferenceAlias RefAlias14 = None, ReferenceAlias RefAlias15 = None, ReferenceAlias RefAlias16 = None, ReferenceAlias RefAlias17 = None, ReferenceAlias RefAlias18 = None, ReferenceAlias RefAlias19 = None, ReferenceAlias RefAlias20 = None, \
ReferenceAlias RefAlias21 = None, ReferenceAlias RefAlias22 = None, ReferenceAlias RefAlias23 = None, ReferenceAlias RefAlias24 = None, ReferenceAlias RefAlias25 = None, ReferenceAlias RefAlias26 = None, ReferenceAlias RefAlias27 = None, ReferenceAlias RefAlias28 = None, ReferenceAlias RefAlias29 = None, ReferenceAlias RefAlias30 = None \
)
; CWScript.Log("CWSiegeScript", self + "calling RegisterGenericAttackAliases()" + \
; RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 + "," + \
; RefAlias11 + "," + RefAlias12 + "," + RefAlias13 + "," + RefAlias14 + "," + RefAlias15 + "," + RefAlias16 + "," + RefAlias17 + "," + RefAlias18 + "," + RefAlias19 + "," + RefAlias20 + "," + \
; RefAlias21 + "," + RefAlias22 + "," + RefAlias23 + "," + RefAlias24 + "," + RefAlias25 + "," + RefAlias26 + "," + RefAlias27 + "," + RefAlias28 + "," + RefAlias29 + "," + RefAlias30 + "," \
; )
GenericAttack1 = RefAlias1
GenericAttack2 = RefAlias2
GenericAttack3 = RefAlias3
GenericAttack4 = RefAlias4
GenericAttack5 = RefAlias5
GenericAttack6 = RefAlias6
GenericAttack7 = RefAlias7
GenericAttack8 = RefAlias8
GenericAttack9 = RefAlias9
GenericAttack10 = RefAlias10
GenericAttack11 = RefAlias11
GenericAttack12 = RefAlias12
GenericAttack13 = RefAlias13
GenericAttack14 = RefAlias14
GenericAttack15 = RefAlias15
GenericAttack16 = RefAlias16
GenericAttack17 = RefAlias17
GenericAttack18 = RefAlias18
GenericAttack19 = RefAlias19
GenericAttack20 = RefAlias20
GenericAttack21 = RefAlias21
GenericAttack22 = RefAlias22
GenericAttack23 = RefAlias23
GenericAttack24 = RefAlias24
GenericAttack25 = RefAlias25
GenericAttack26 = RefAlias26
GenericAttack27 = RefAlias27
GenericAttack28 = RefAlias28
GenericAttack29 = RefAlias29
GenericAttack30 = RefAlias30
EndFunction
;Register GenericDefend Aliases
Function RegisterGenericDefendAliases( \
ReferenceAlias RefAlias1, ReferenceAlias RefAlias2 = None, ReferenceAlias RefAlias3 = None, ReferenceAlias RefAlias4 = None, ReferenceAlias RefAlias5 = None, ReferenceAlias RefAlias6 = None, ReferenceAlias RefAlias7 = None, ReferenceAlias RefAlias8 = None, ReferenceAlias RefAlias9 = None, ReferenceAlias RefAlias10 = None, \
ReferenceAlias RefAlias11 = None, ReferenceAlias RefAlias12 = None, ReferenceAlias RefAlias13 = None, ReferenceAlias RefAlias14 = None, ReferenceAlias RefAlias15 = None, ReferenceAlias RefAlias16 = None, ReferenceAlias RefAlias17 = None, ReferenceAlias RefAlias18 = None, ReferenceAlias RefAlias19 = None, ReferenceAlias RefAlias20 = None, \
ReferenceAlias RefAlias21 = None, ReferenceAlias RefAlias22 = None, ReferenceAlias RefAlias23 = None, ReferenceAlias RefAlias24 = None, ReferenceAlias RefAlias25 = None, ReferenceAlias RefAlias26 = None, ReferenceAlias RefAlias27 = None, ReferenceAlias RefAlias28 = None, ReferenceAlias RefAlias29 = None, ReferenceAlias RefAlias30 = None \
)
; CWScript.Log("CWSiegeScript", self + "calling RegisterGenericDefendAliases()" + \
; RefAlias1 + "," + RefAlias2 + "," + RefAlias3 + "," + RefAlias4 + "," + RefAlias5 + "," + RefAlias6 + "," + RefAlias7 + "," + RefAlias8 + "," + RefAlias9 + "," + RefAlias10 + "," + \
; RefAlias11 + "," + RefAlias12 + "," + RefAlias13 + "," + RefAlias14 + "," + RefAlias15 + "," + RefAlias16 + "," + RefAlias17 + "," + RefAlias18 + "," + RefAlias19 + "," + RefAlias20 + "," + \
; RefAlias21 + "," + RefAlias22 + "," + RefAlias23 + "," + RefAlias24 + "," + RefAlias25 + "," + RefAlias26 + "," + RefAlias27 + "," + RefAlias28 + "," + RefAlias29 + "," + RefAlias30 + "," \
; )
GenericDefend1 = RefAlias1
GenericDefend2 = RefAlias2
GenericDefend3 = RefAlias3
GenericDefend4 = RefAlias4
GenericDefend5 = RefAlias5
GenericDefend6 = RefAlias6
GenericDefend7 = RefAlias7
GenericDefend8 = RefAlias8
GenericDefend9 = RefAlias9
GenericDefend10 = RefAlias10
GenericDefend11 = RefAlias11
GenericDefend12 = RefAlias12
GenericDefend13 = RefAlias13
GenericDefend14 = RefAlias14
GenericDefend15 = RefAlias15
GenericDefend16 = RefAlias16
GenericDefend17 = RefAlias17
GenericDefend18 = RefAlias18
GenericDefend19 = RefAlias19
GenericDefend20 = RefAlias20
GenericDefend21 = RefAlias21
GenericDefend22 = RefAlias22
GenericDefend23 = RefAlias23
GenericDefend24 = RefAlias24
GenericDefend25 = RefAlias25
GenericDefend26 = RefAlias26
GenericDefend27 = RefAlias27
GenericDefend28 = RefAlias28
GenericDefend29 = RefAlias29
GenericDefend30 = RefAlias30
EndFunction
Function RegisterAliasesWithCWReinforcementScript(Location SiegeLocationAttackPoint)
; CWScript.Log("CWSiegeScript", self + "calling RegisterAliasesWithCWReinforcementScript()")
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
CWReinforcementControllerS.RegisterAttackPoint(SiegeLocationAttackPoint)
CWReinforcementControllerS.RegisterAlias(Attacker1)
CWReinforcementControllerS.RegisterAlias(Attacker2)
CWReinforcementControllerS.RegisterAlias(Attacker3)
CWReinforcementControllerS.RegisterAlias(Attacker4)
CWReinforcementControllerS.RegisterAlias(Attacker5)
CWReinforcementControllerS.RegisterAlias(Attacker6)
CWReinforcementControllerS.RegisterAlias(Attacker7)
CWReinforcementControllerS.RegisterAlias(Attacker8)
CWReinforcementControllerS.RegisterAlias(Attacker9)
CWReinforcementControllerS.RegisterAlias(Attacker10)
CWReinforcementControllerS.RegisterAlias(Defender1)
CWReinforcementControllerS.RegisterAlias(Defender2)
CWReinforcementControllerS.RegisterAlias(Defender3)
CWReinforcementControllerS.RegisterAlias(Defender4)
CWReinforcementControllerS.RegisterAlias(Defender5)
CWReinforcementControllerS.RegisterAlias(Defender6)
CWReinforcementControllerS.RegisterAlias(Defender7)
CWReinforcementControllerS.RegisterAlias(Defender8)
CWReinforcementControllerS.RegisterAlias(Defender9)
CWReinforcementControllerS.RegisterAlias(Defender10)
EndFunction
Function RegisterSpawnAttackerAliasesWithCWReinforcementScript(ReferenceAlias Marker1Alias, ReferenceAlias Marker2Alias, ReferenceAlias Marker3Alias, ReferenceAlias Marker4Alias, ReferenceAlias FailSafeMarkerAlias)
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
; CWScript.Log("CWSiegeScript", self + "RegisterSpawnAttackerAliasesWithCWReinforcementScript() calling RegisterSpawnAttackerAliases() on CWReinforcementControllerScript")
CWReinforcementControllerS.RegisterSpawnAttackerAliases(Marker1Alias, Marker2Alias, Marker3Alias, Marker4Alias, FailSafeMarkerAlias)
EndFunction
Function RegisterSpawnDefenderAliasesWithCWReinforcementScript(ReferenceAlias Marker1Alias, ReferenceAlias Marker2Alias, ReferenceAlias Marker3Alias, ReferenceAlias Marker4Alias, ReferenceAlias FailSafeMarkerAlias)
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
; CWScript.Log("CWSiegeScript", self + "RegisterSpawnDefenderAliasesWithCWReinforcementScript() calling RegisterSpawnDefenderAliases() on CWReinforcementControllerScript")
CWReinforcementControllerS.RegisterSpawnDefenderAliases(Marker1Alias, Marker2Alias, Marker3Alias, Marker4Alias, FailSafeMarkerAlias)
EndFunction
Function SetInfinitePoolsOnCWReinforcementScript()
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
; CWScript.Log("CWSiegeScript", self + "setInfinitePoolsOnCWReinforcementScript() calling SetInfinitePools() on CWReinforcementControllerScript")
CWReinforcementControllerS.SetInfinitePools()
EndFunction
Function SetPoolAttackerOnCWReinforcementScript(int BasePool, float AttackDeltaMult = 1.0, float scaleMult = 1.0, bool InfinitePool = False)
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
; CWScript.Log("CWSiegeScript", self + "SetPoolAttackerOnCWReinforcementScript() calling SetPoolAttacker() on CWReinforcementControllerScript")
CWReinforcementControllerS.SetPoolAttacker(BasePool, AttackDeltaMult, scaleMult, InfinitePool )
EndFunction
Function SetPoolDefenderOnCWReinforcementScript(int BasePool, float AttackDeltaMult = 1.0, float scaleMult = 1.0, bool InfinitePool = False)
CWReinforcementControllerScript CWReinforcementControllerS = (self as quest ) as CWReinforcementControllerScript
; CWScript.Log("CWSiegeScript", self + "SetPoolDefenderOnCWReinforcementScript() calling SetPoolDefender() on CWReinforcementControllerScript")
CWReinforcementControllerS.SetPoolDefender(BasePool, AttackDeltaMult, scaleMult, InfinitePool )
EndFunction
function DisableAllAliases()
; CWScript.Log("CWSiegeScript", self + "calling DisableAllAliases()")
DisableImperialSonsAliases()
DisableGenericAliases()
DisableGenericAttackAliases()
DisableGenericDefendAliases()
EndFunction
Function SetUpAliases(Location LocationOfSiege)
DoneSettingUpAliases = false
; CWScript.Log("CWSiegeScript", self + "calling SetUpAliases()")
DisableImperialSonsAliases() ;disables ALL the soldiers
SetUpAttackerDefenderAliases(LocationOfSiege) ;shoves soldiers into Attacker/Defender aliases depending on the player's faction and which faction is attacking
LogAttackDefenderAliases() ;for debugging
DoneSettingUpAliases = true
EndFunction
function TurnOnAliases(bool IsAttackQuest)
DoneTurningOnAliases = false
; CWScript.Log("CWSiegeScript", self + "calling TurnOnAliases()")
EnableAttackerDefenderAliases() ;Enables the Attacker/Defender aliases
ResetAttackerDefenderAliases() ;Resets the Attacker/Defender aliases
EnableGenericAliases() ;Enables anything put into the Generic Alias "array" by RegisterGenericAliases()
ResetGenericAliases() ;Resets anything put into the Generic Alias "array" by RegisterGenericAliases()
if IsAttackQuest
EnableGenericAttackAliases() ;Enables anything put into the Generic Attack Alias "array" by RegisterGenericAttackAliases()
ResetGenericAttackAliases() ;Resets anything put into the Generic Attack Alias "array" by RegisterGenericAttackAliases()
Else
EnableGenericDefendAliases() ;Enables anything put into the Generic Defend Alias "array" by RegisterGenericDefendAliases()
ResetGenericDefendAliases() ;Resets anything put into the Generic Defend Alias "array" by RegisterGenericDefendAliases()
EndIf
DoneTurningOnAliases = true
EndFunction
Function LogAttackDefenderAliases()
logAlias(Attacker1)
logAlias(Attacker2)
logAlias(Attacker3)
logAlias(Attacker4)
logAlias(Attacker5)
logAlias(Attacker6)
logAlias(Attacker7)
logAlias(Attacker8)
logAlias(Attacker9)
logAlias(Attacker10)
logAlias(Defender1)
logAlias(Defender2)
logAlias(Defender3)
logAlias(Defender4)
logAlias(Defender5)
logAlias(Defender6)
logAlias(Defender7)
logAlias(Defender8)
logAlias(Defender9)
logAlias(Defender10)
EndFunction
function logAlias(ReferenceAlias AliasToPrintToLog)
; CWScript.Log("CWSiegeScript", self + "logAlias()" + AliasToPrintToLog + " is REFERENCE " + AliasToPrintToLog.GetReference())
EndFunction
Function SetUpAttackerDefenderAliases(Location LocationOfSiege)
; CWScript.Log("CWSiegeScript", self + "calling SetUpAttackerDefenderAliases()")
if CWs.playerAllegiance == CWs.iImperials
if CWs.IsPlayerAttacking(LocationOfSiege)
SetUpAliasesImperialsAttacking()
else ;playerAllegiance == Imperials, but Sons are attacking
SetUpAliasesSonsAttacking()
endif
Elseif CWs.playerAllegiance == 2 ;Sons
if CWs.IsPlayerAttacking(LocationOfSiege)
SetUpAliasesSonsAttacking()
else ;playerAllegiance == Sons, but Imperials are attakcing
SetUpAliasesImperialsAttacking()
endif
Else ;unexpected player allegiance
; CWScript.Log("CWSiege", self + "WARNING: SetUpAliases() expected 1(Imperials) or 2(Sons) for CWs.PlayerAllegiance, got: " + CWs.PlayerAllegiance, 2)
endif
EndFunction
function SetUpAliasesImperialsAttacking()
; CWScript.Log("CWSiegeScript", self + "calling SetUpAliasesImperialsAttacking()")
Attacker1.ForceRefTo(ImperialAttacker1.GetReference())
Attacker2.ForceRefTo(ImperialAttacker2.GetReference())
Attacker3.ForceRefTo(ImperialAttacker3.GetReference())
Attacker4.ForceRefTo(ImperialAttacker4.GetReference())
Attacker5.ForceRefTo(ImperialAttacker5.GetReference())
Attacker6.ForceRefTo(ImperialAttacker6.GetReference())
Attacker7.ForceRefTo(ImperialAttacker7.GetReference())
Attacker8.ForceRefTo(ImperialAttacker8.GetReference())
Attacker9.ForceRefTo(ImperialAttacker9.GetReference())
Attacker10.ForceRefTo(ImperialAttacker10.GetReference())
Defender1.ForceRefTo(SonsDefender1.GetReference())
Defender2.ForceRefTo(SonsDefender2.GetReference())
Defender3.ForceRefTo(SonsDefender3.GetReference())
Defender4.ForceRefTo(SonsDefender4.GetReference())
Defender5.ForceRefTo(SonsDefender5.GetReference())
Defender6.ForceRefTo(SonsDefender6.GetReference())
Defender7.ForceRefTo(SonsDefender7.GetReference())
Defender8.ForceRefTo(SonsDefender8.GetReference())
Defender9.ForceRefTo(SonsDefender9.GetReference())
Defender10.ForceRefTo(SonsDefender10.GetReference())
EndFunction
function SetUpAliasesSonsAttacking()
; CWScript.Log("CWSiegeScript", self + "calling SetUpAliasesSonsAttacking()")
Attacker1.ForceRefTo(SonsAttacker1.GetReference())
Attacker2.ForceRefTo(SonsAttacker2.GetReference())
Attacker3.ForceRefTo(SonsAttacker3.GetReference())
Attacker4.ForceRefTo(SonsAttacker4.GetReference())
Attacker5.ForceRefTo(SonsAttacker5.GetReference())
Attacker6.ForceRefTo(SonsAttacker6.GetReference())
Attacker7.ForceRefTo(SonsAttacker7.GetReference())
Attacker8.ForceRefTo(SonsAttacker8.GetReference())
Attacker9.ForceRefTo(SonsAttacker9.GetReference())
Attacker10.ForceRefTo(SonsAttacker10.GetReference())
Defender1.ForceRefTo(ImperialDefender1.GetReference())
Defender2.ForceRefTo(ImperialDefender2.GetReference())
Defender3.ForceRefTo(ImperialDefender3.GetReference())
Defender4.ForceRefTo(ImperialDefender4.GetReference())
Defender5.ForceRefTo(ImperialDefender5.GetReference())
Defender6.ForceRefTo(ImperialDefender6.GetReference())
Defender7.ForceRefTo(ImperialDefender7.GetReference())
Defender8.ForceRefTo(ImperialDefender8.GetReference())
Defender9.ForceRefTo(ImperialDefender9.GetReference())
Defender10.ForceRefTo(ImperialDefender10.GetReference())
EndFunction
function tryToDisableAlias(ReferenceAlias AliasToTry)
ObjectReference AliasRef
if AliasToTry
AliasRef = AliasToTry.GetReference()
if AliasRef
; CWScript.Log("CWSiegeScript", self + "tryToDisableAlias([" + AliasToTry +"]) disabling: " + AliasRef)
AliasRef.Disable()
endif
EndIf
EndFunction
function tryToEnableAlias(ReferenceAlias AliasToTry)
ObjectReference AliasRef
if AliasToTry
AliasRef = AliasToTry.GetReference()
if AliasRef
; CWScript.Log("CWSiegeScript", self + "tryToEnableAlias([" + AliasToTry +"]) enabling: " + AliasRef)
AliasRef.Enable()
endif
EndIf
EndFunction
function tryToResetAlias(ReferenceAlias AliasToTry)
ObjectReference AliasRef
if AliasToTry
AliasRef = AliasToTry.GetReference()
if AliasRef
; CWScript.Log("CWSiegeScript", self + "tryToResetAlias([" + AliasToTry +"]) reseting: " + AliasRef)
AliasRef.Reset()
endif
EndIf
EndFunction
Function DisableImperialSonsAliases()
; CWScript.Log("CWSiegeScript", self + "calling DisableImperialSonsAliases()")
tryToDisableAlias(ImperialAttacker1)
tryToDisableAlias(ImperialAttacker2)
tryToDisableAlias(ImperialAttacker3)
tryToDisableAlias(ImperialAttacker4)
tryToDisableAlias(ImperialAttacker5)
tryToDisableAlias(ImperialAttacker6)
tryToDisableAlias(ImperialAttacker7)
tryToDisableAlias(ImperialAttacker8)
tryToDisableAlias(ImperialAttacker9)
tryToDisableAlias(ImperialAttacker10)
tryToDisableAlias(ImperialDefender1)
tryToDisableAlias(ImperialDefender2)
tryToDisableAlias(ImperialDefender3)
tryToDisableAlias(ImperialDefender4)
tryToDisableAlias(ImperialDefender5)
tryToDisableAlias(ImperialDefender6)
tryToDisableAlias(ImperialDefender7)
tryToDisableAlias(ImperialDefender8)
tryToDisableAlias(ImperialDefender9)
tryToDisableAlias(ImperialDefender10)
tryToDisableAlias(SonsAttacker1)
tryToDisableAlias(SonsAttacker2)
tryToDisableAlias(SonsAttacker3)
tryToDisableAlias(SonsAttacker4)
tryToDisableAlias(SonsAttacker5)
tryToDisableAlias(SonsAttacker6)
tryToDisableAlias(SonsAttacker7)
tryToDisableAlias(SonsAttacker8)
tryToDisableAlias(SonsAttacker9)
tryToDisableAlias(SonsAttacker10)
tryToDisableAlias(SonsDefender1)
tryToDisableAlias(SonsDefender2)
tryToDisableAlias(SonsDefender3)
tryToDisableAlias(SonsDefender4)
tryToDisableAlias(SonsDefender5)
tryToDisableAlias(SonsDefender6)
tryToDisableAlias(SonsDefender7)
tryToDisableAlias(SonsDefender8)
tryToDisableAlias(SonsDefender9)
tryToDisableAlias(SonsDefender10)
EndFunction
function EnableAttackerDefenderAliases()
; CWScript.Log("CWSiegeScript", self + "calling EnableAttackerDefenderAliases()")
TryToEnableAlias(Attacker1)
TryToEnableAlias(Attacker2)
TryToEnableAlias(Attacker3)
TryToEnableAlias(Attacker4)
TryToEnableAlias(Attacker5)
TryToEnableAlias(Attacker6)
TryToEnableAlias(Attacker7)
TryToEnableAlias(Attacker8)
TryToEnableAlias(Attacker9)
TryToEnableAlias(Attacker10)
TryToEnableAlias(Defender1)
TryToEnableAlias(Defender2)
TryToEnableAlias(Defender3)
TryToEnableAlias(Defender4)
TryToEnableAlias(Defender5)
TryToEnableAlias(Defender6)
TryToEnableAlias(Defender7)
TryToEnableAlias(Defender8)
TryToEnableAlias(Defender9)
TryToEnableAlias(Defender10)
EndFunction
Function ResetAttackerDefenderAliases()
; CWScript.Log("CWSiegeScript", self + "calling ResetAttackerDefenderAliases()")
TryToResetAlias(Attacker1)
TryToResetAlias(Attacker2)
TryToResetAlias(Attacker3)
TryToResetAlias(Attacker4)
TryToResetAlias(Attacker5)
TryToResetAlias(Attacker6)
TryToResetAlias(Attacker7)
TryToResetAlias(Attacker8)
TryToResetAlias(Attacker9)
TryToResetAlias(Attacker10)
TryToResetAlias(Defender1)
TryToResetAlias(Defender2)
TryToResetAlias(Defender3)
TryToResetAlias(Defender4)
TryToResetAlias(Defender5)
TryToResetAlias(Defender6)
TryToResetAlias(Defender7)
TryToResetAlias(Defender8)
TryToResetAlias(Defender9)
TryToResetAlias(Defender10)
EndFunction
;Functions to manipulate Generic Aliases "Array"
Function DisableGenericAliases()
; CWScript.Log("CWSiegeScript", self + "calling DisableGenericAliases()")
TryToDisableAlias(Generic1)
TryToDisableAlias(Generic2)
TryToDisableAlias(Generic3)
TryToDisableAlias(Generic4)
TryToDisableAlias(Generic5)
TryToDisableAlias(Generic6)
TryToDisableAlias(Generic7)
TryToDisableAlias(Generic8)
TryToDisableAlias(Generic9)
TryToDisableAlias(Generic10)
TryToDisableAlias(Generic11)
TryToDisableAlias(Generic12)
TryToDisableAlias(Generic13)
TryToDisableAlias(Generic14)
TryToDisableAlias(Generic15)
TryToDisableAlias(Generic16)
TryToDisableAlias(Generic17)
TryToDisableAlias(Generic18)
TryToDisableAlias(Generic19)
TryToDisableAlias(Generic20)
TryToDisableAlias(Generic21)
TryToDisableAlias(Generic22)
TryToDisableAlias(Generic23)
TryToDisableAlias(Generic24)
TryToDisableAlias(Generic25)
TryToDisableAlias(Generic26)
TryToDisableAlias(Generic27)
TryToDisableAlias(Generic28)
TryToDisableAlias(Generic29)
TryToDisableAlias(Generic30)
EndFunction
Function EnableGenericAliases()
; CWScript.Log("CWSiegeScript", self + "calling EnableGenericAliases()")
TryToEnableAlias(Generic1)
TryToEnableAlias(Generic2)
TryToEnableAlias(Generic3)
TryToEnableAlias(Generic4)
TryToEnableAlias(Generic5)
TryToEnableAlias(Generic6)
TryToEnableAlias(Generic7)
TryToEnableAlias(Generic8)
TryToEnableAlias(Generic9)
TryToEnableAlias(Generic10)
TryToEnableAlias(Generic11)
TryToEnableAlias(Generic12)
TryToEnableAlias(Generic13)
TryToEnableAlias(Generic14)
TryToEnableAlias(Generic15)
TryToEnableAlias(Generic16)
TryToEnableAlias(Generic17)
TryToEnableAlias(Generic18)
TryToEnableAlias(Generic19)
TryToEnableAlias(Generic20)
TryToEnableAlias(Generic21)
TryToEnableAlias(Generic22)
TryToEnableAlias(Generic23)
TryToEnableAlias(Generic24)
TryToEnableAlias(Generic25)
TryToEnableAlias(Generic26)
TryToEnableAlias(Generic27)
TryToEnableAlias(Generic28)
TryToEnableAlias(Generic29)
TryToEnableAlias(Generic30)
EndFunction
Function ResetGenericAliases()
; CWScript.Log("CWSiegeScript", self + "calling ResetGenericAliases()")
TryToResetAlias(Generic1)
TryToResetAlias(Generic2)
TryToResetAlias(Generic3)
TryToResetAlias(Generic4)
TryToResetAlias(Generic5)
TryToResetAlias(Generic6)
TryToResetAlias(Generic7)
TryToResetAlias(Generic8)
TryToResetAlias(Generic9)
TryToResetAlias(Generic10)
TryToResetAlias(Generic11)
TryToResetAlias(Generic12)
TryToResetAlias(Generic13)
TryToResetAlias(Generic14)
TryToResetAlias(Generic15)
TryToResetAlias(Generic16)
TryToResetAlias(Generic17)
TryToResetAlias(Generic18)
TryToResetAlias(Generic19)
TryToResetAlias(Generic20)
TryToResetAlias(Generic21)
TryToResetAlias(Generic22)
TryToResetAlias(Generic23)
TryToResetAlias(Generic24)
TryToResetAlias(Generic25)
TryToResetAlias(Generic26)
TryToResetAlias(Generic27)
TryToResetAlias(Generic28)
TryToResetAlias(Generic29)
TryToResetAlias(Generic30)
EndFunction
;Functions to manipulate GenericAttack Aliases "Array"
Function DisableGenericAttackAliases()
; CWScript.Log("CWSiegeScript", self + "calling DisableGenericAttackAliases()")
TryToDisableAlias(GenericAttack1)
TryToDisableAlias(GenericAttack2)
TryToDisableAlias(GenericAttack3)
TryToDisableAlias(GenericAttack4)
TryToDisableAlias(GenericAttack5)
TryToDisableAlias(GenericAttack6)
TryToDisableAlias(GenericAttack7)
TryToDisableAlias(GenericAttack8)
TryToDisableAlias(GenericAttack9)
TryToDisableAlias(GenericAttack10)
TryToDisableAlias(GenericAttack11)
TryToDisableAlias(GenericAttack12)
TryToDisableAlias(GenericAttack13)
TryToDisableAlias(GenericAttack14)
TryToDisableAlias(GenericAttack15)
TryToDisableAlias(GenericAttack16)
TryToDisableAlias(GenericAttack17)
TryToDisableAlias(GenericAttack18)
TryToDisableAlias(GenericAttack19)
TryToDisableAlias(GenericAttack20)
TryToDisableAlias(GenericAttack21)
TryToDisableAlias(GenericAttack22)
TryToDisableAlias(GenericAttack23)
TryToDisableAlias(GenericAttack24)
TryToDisableAlias(GenericAttack25)
TryToDisableAlias(GenericAttack26)
TryToDisableAlias(GenericAttack27)
TryToDisableAlias(GenericAttack28)
TryToDisableAlias(GenericAttack29)
TryToDisableAlias(GenericAttack30)
EndFunction
Function EnableGenericAttackAliases()
; CWScript.Log("CWSiegeScript", self + "calling EnableGenericAttackAliases()")
TryToEnableAlias(GenericAttack1)
TryToEnableAlias(GenericAttack2)
TryToEnableAlias(GenericAttack3)
TryToEnableAlias(GenericAttack4)
TryToEnableAlias(GenericAttack5)
TryToEnableAlias(GenericAttack6)
TryToEnableAlias(GenericAttack7)
TryToEnableAlias(GenericAttack8)
TryToEnableAlias(GenericAttack9)
TryToEnableAlias(GenericAttack10)
TryToEnableAlias(GenericAttack11)
TryToEnableAlias(GenericAttack12)
TryToEnableAlias(GenericAttack13)
TryToEnableAlias(GenericAttack14)
TryToEnableAlias(GenericAttack15)
TryToEnableAlias(GenericAttack16)
TryToEnableAlias(GenericAttack17)
TryToEnableAlias(GenericAttack18)
TryToEnableAlias(GenericAttack19)
TryToEnableAlias(GenericAttack20)
TryToEnableAlias(GenericAttack21)
TryToEnableAlias(GenericAttack22)
TryToEnableAlias(GenericAttack23)
TryToEnableAlias(GenericAttack24)
TryToEnableAlias(GenericAttack25)
TryToEnableAlias(GenericAttack26)
TryToEnableAlias(GenericAttack27)
TryToEnableAlias(GenericAttack28)
TryToEnableAlias(GenericAttack29)
TryToEnableAlias(GenericAttack30)
EndFunction
Function ResetGenericAttackAliases()
; CWScript.Log("CWSiegeScript", self + "calling ResetGenericAttackAliases()")
TryToResetAlias(GenericAttack1)
TryToResetAlias(GenericAttack2)
TryToResetAlias(GenericAttack3)
TryToResetAlias(GenericAttack4)
TryToResetAlias(GenericAttack5)
TryToResetAlias(GenericAttack6)
TryToResetAlias(GenericAttack7)
TryToResetAlias(GenericAttack8)
TryToResetAlias(GenericAttack9)
TryToResetAlias(GenericAttack10)
TryToResetAlias(GenericAttack11)
TryToResetAlias(GenericAttack12)
TryToResetAlias(GenericAttack13)
TryToResetAlias(GenericAttack14)
TryToResetAlias(GenericAttack15)
TryToResetAlias(GenericAttack16)
TryToResetAlias(GenericAttack17)
TryToResetAlias(GenericAttack18)
TryToResetAlias(GenericAttack19)
TryToResetAlias(GenericAttack20)
TryToResetAlias(GenericAttack21)
TryToResetAlias(GenericAttack22)
TryToResetAlias(GenericAttack23)
TryToResetAlias(GenericAttack24)
TryToResetAlias(GenericAttack25)
TryToResetAlias(GenericAttack26)
TryToResetAlias(GenericAttack27)
TryToResetAlias(GenericAttack28)
TryToResetAlias(GenericAttack29)
TryToResetAlias(GenericAttack30)
EndFunction
;Functions to manipulate GenericDefend Aliases "Array"
Function DisableGenericDefendAliases()
; CWScript.Log("CWSiegeScript", self + "calling DisableGenericDefendAliases()")
TryToDisableAlias(GenericDefend1)
TryToDisableAlias(GenericDefend2)
TryToDisableAlias(GenericDefend3)
TryToDisableAlias(GenericDefend4)
TryToDisableAlias(GenericDefend5)
TryToDisableAlias(GenericDefend6)
TryToDisableAlias(GenericDefend7)
TryToDisableAlias(GenericDefend8)
TryToDisableAlias(GenericDefend9)
TryToDisableAlias(GenericDefend10)
TryToDisableAlias(GenericDefend11)
TryToDisableAlias(GenericDefend12)
TryToDisableAlias(GenericDefend13)
TryToDisableAlias(GenericDefend14)
TryToDisableAlias(GenericDefend15)
TryToDisableAlias(GenericDefend16)
TryToDisableAlias(GenericDefend17)
TryToDisableAlias(GenericDefend18)
TryToDisableAlias(GenericDefend19)
TryToDisableAlias(GenericDefend20)
TryToDisableAlias(GenericDefend21)
TryToDisableAlias(GenericDefend22)
TryToDisableAlias(GenericDefend23)
TryToDisableAlias(GenericDefend24)
TryToDisableAlias(GenericDefend25)
TryToDisableAlias(GenericDefend26)
TryToDisableAlias(GenericDefend27)
TryToDisableAlias(GenericDefend28)
TryToDisableAlias(GenericDefend29)
TryToDisableAlias(GenericDefend30)
EndFunction
Function EnableGenericDefendAliases()
; CWScript.Log("CWSiegeScript", self + "calling EnableGenericDefendAliases()")
TryToEnableAlias(GenericDefend1)
TryToEnableAlias(GenericDefend2)
TryToEnableAlias(GenericDefend3)
TryToEnableAlias(GenericDefend4)
TryToEnableAlias(GenericDefend5)
TryToEnableAlias(GenericDefend6)
TryToEnableAlias(GenericDefend7)
TryToEnableAlias(GenericDefend8)
TryToEnableAlias(GenericDefend9)
TryToEnableAlias(GenericDefend10)
TryToEnableAlias(GenericDefend11)
TryToEnableAlias(GenericDefend12)
TryToEnableAlias(GenericDefend13)
TryToEnableAlias(GenericDefend14)
TryToEnableAlias(GenericDefend15)
TryToEnableAlias(GenericDefend16)
TryToEnableAlias(GenericDefend17)
TryToEnableAlias(GenericDefend18)
TryToEnableAlias(GenericDefend19)
TryToEnableAlias(GenericDefend20)
TryToEnableAlias(GenericDefend21)
TryToEnableAlias(GenericDefend22)
TryToEnableAlias(GenericDefend23)
TryToEnableAlias(GenericDefend24)
TryToEnableAlias(GenericDefend25)
TryToEnableAlias(GenericDefend26)
TryToEnableAlias(GenericDefend27)
TryToEnableAlias(GenericDefend28)
TryToEnableAlias(GenericDefend29)
TryToEnableAlias(GenericDefend30)
EndFunction
Function ResetGenericDefendAliases()
; CWScript.Log("CWSiegeScript", self + "calling ResetGenericDefendAliases()")
TryToResetAlias(GenericDefend1)
TryToResetAlias(GenericDefend2)
TryToResetAlias(GenericDefend3)
TryToResetAlias(GenericDefend4)
TryToResetAlias(GenericDefend5)
TryToResetAlias(GenericDefend6)
TryToResetAlias(GenericDefend7)
TryToResetAlias(GenericDefend8)
TryToResetAlias(GenericDefend9)
TryToResetAlias(GenericDefend10)
TryToResetAlias(GenericDefend11)
TryToResetAlias(GenericDefend12)
TryToResetAlias(GenericDefend13)
TryToResetAlias(GenericDefend14)
TryToResetAlias(GenericDefend15)
TryToResetAlias(GenericDefend16)
TryToResetAlias(GenericDefend17)
TryToResetAlias(GenericDefend18)
TryToResetAlias(GenericDefend19)
TryToResetAlias(GenericDefend20)
TryToResetAlias(GenericDefend21)
TryToResetAlias(GenericDefend22)
TryToResetAlias(GenericDefend23)
TryToResetAlias(GenericDefend24)
TryToResetAlias(GenericDefend25)
TryToResetAlias(GenericDefend26)
TryToResetAlias(GenericDefend27)
TryToResetAlias(GenericDefend28)
TryToResetAlias(GenericDefend29)
TryToResetAlias(GenericDefend30)
EndFunction
function FailAttackQuest(locationAlias CityAlias)
; CWScript.Log("CWSiegeScript", self + "FailAttackQuest()")
;fail the siege quest:
CWs.CWSiegeObj.setStage(8999)
CWs.FailCWObj(Hold.GetLocation())
;fail the campaign
;CWs.CWCampaignS.FailedMission = 1
CWs.ContestedHoldWinner = CWs.GetDefender(CityAlias.GetLocation())
;CWs.CWCampaign.setStage(255)
while Game.GetPlayer().IsInLocation(CityAlias.GetLocation())
; CWScript.Log("CWSiegeScript", self + "FailAttackQuest() Waiting for player to leave City before stoping Siege quest")
utility.wait(5)
endwhile
stop()
EndFunction
function FailDefenseQuest(locationAlias CityAlias)
; CWScript.Log("CWSiegeScript", self + "FailDefenseQuest()")
;start the escape through the city quest
; CWScript.Log("CWSiegeScript", self + "FailDefenseQuest() CWs.CWEscapeCityStart.SendStoryEvent(" + CityAlias.GetLocation() +")")
CWs.CWEscapeCityStart.SendStoryEvent(CityAlias.GetLocation(), CWs.GetRikkeOrGalmar())
; CWScript.Log("CWSiegeScript", self + "FailDefenseQuest() failing CWSiegeDefendObj quest and failing the campaign")
;fail the siege quest:
CWs.CWSiegeObj.setStage(8999)
CWs.FailCWObj(Hold.GetLocation())
;Update the campaign objectives
;CWs.CWCampaignObj.setStage(50) ;objective to flee the city with the Jarl
;Fail the campaign
;CWs.CWCampaignS.FailedMission = 1
CWs.ContestedHoldWinner = CWs.GetAttacker(CityAlias.GetLocation())
;CWs.CWCampaign.setstage(255)
while Game.GetPlayer().IsInLocation(CityAlias.GetLocation())
; CWScript.Log("CWSiegeScript", self + "FailDefenseQuest() Waiting for player to leave City before stoping Siege quest")
utility.wait(5)
endwhile
stop()
EndFunction
Function SucceedDefenseQuest(LocationAlias HoldAlias, LocationAlias CityAlias, ReferenceAlias MainGateExteriorAlias)
;SUCCESS!!! Defenders Win because attackers ran out of respawns
; CWScript.Log("CWSiegeScript", self + "SucceedDefenseQuest()")
;Removes this music from the stack
MUSCombatCivilWar.Remove()
;Prevent player activation of main gate into city
MainGateExteriorAlias.GetReference().BlockActivation(FALSE)
;Set Global Dialog Stuff
CWs.CWStateAttackStarted.SetValue(0)
CWs.CWStateAttackerBrokeThrough.SetValue(0)
CWs.CWStateDefenderFallingBack.SetValue(0)
CWs.CWStateDefenderLastStand.SetValue(0)
CWs.CWStateAttackerAtGate.SetValue(0)
CWs.CWStateAttackerOutOfReinforcements.SetValue(1)
CWs.CWSiegeObj.setStage(9000)
;obsolete:
CWs.CompleteCWObj(Hold.GetLocation())
CWs.ContestedHoldWinner = CWs.GetDefender(CityAlias.GetLocation())
;CWs.registerMissionSuccess() - NOT counting final sieges as successful missions, since those are what increase the CWObj global values
;CWs.CWCampaign.setStage(255) -- OBSOLETE
while Game.GetPlayer().IsInLocation(CityAlias.GetLocation())
; CWScript.Log("CWSiegeScript", self + "SucceedDefenseQuest(): Waiting for player to leave City before stoping Siege quest")
utility.wait(5)
endwhile
stop()
EndFunction
function TryToTurnOnCatapultAlias(ReferenceAlias CatapultAlias)
ObjectReference CatapultRef = CatapultAlias.GetReference()
If CatapultRef
; CWScript.Log("CWSiegeScript", self + "TryToTurnOnCatapultAlias() calling turnOn() on " + CatapultRef)
(CatapultRef as CWCatapultScript).turnOn()
Else
; CWScript.Log("CWSiegeScript", self + "TryToTurnOnCatapultAlias() is empty alias, not turning on:" + CatapultAlias)
EndIf
endfunction
function TryToturnOffCatapultAlias(ReferenceAlias CatapultAlias)
ObjectReference CatapultRef = CatapultAlias.GetReference()
If CatapultRef
; CWScript.Log("CWSiegeScript", self + "TryToturnOffCatapultAlias() calling turnOff() on " + CatapultRef)
(CatapultRef as CWCatapultScript).turnOff()
Else
; CWScript.Log("CWSiegeScript", self + "TryToturnOffCatapultAlias() is empty alias, not turning off:" + CatapultAlias)
EndIf
endfunction
bool function IsAttack()
; CWScript.Log("CWSiegeScript", self + "IsAttack()")
return CWs.IsPlayerAttacking(City.GetLocation())
EndFunction
function StartCombatSoundsLoop()
CombatSoundsLoopInstance = AMBCombatSoundsLoop.Play(game.GetPlayer())
Sound.SetInstanceVolume(CombatSoundsLoopInstance, 0.5)
EndFunction
function StopCombatSoundsLoop()
Sound.StopInstance(CombatSoundsLoopInstance)
EndFunction
function setupInteriorSiege(Location SiegeLocation, ObjectReference FieldCORef, ObjectReference CityCenterMarker)
; CWScript.Log("CWSiegeScript", self + "setupInteriorSiege(" + SiegeLocation + ")")
;start FortSiege
;safety check, in case you just finished a fort or capital siege, and before it finished shutting down, started the final battle - highly unlikely, put I can envision happening
int waitingFor
While CWs.CWFortSiegeCapital.IsStopped() == False
waitingFor += 1
utility.wait(1)
; CWScript.Log("CWSiegeScript", self + "setupInteriorSiege(" + SiegeLocation + ") WAITING for CWFortSiegeCapital.IsStopped() == false. Have been waiting for:" + waitingFor, 1, true, true)
;this is important enough to make sure even if we aren't explicitly testing in Civil War debug mode we get a message about it
; debug.trace(self + "CWSiegeScript: setupInteriorSiege(" + SiegeLocation + ") WAITING for CWFortSiegeCapital.IsStopped() == false. Have been waiting for:" + waitingFor, 1)
EndWhile
CWs.CWFortSiegeSpecialStart.SendStoryEventAndWait(SiegeLocation, FieldCORef, CityCenterMarker, aiValue1 = 3)
CWs.CWFinaleStart.SendStoryEvent(SiegeLocation)
EndFunction
function ToggleOffComplexWIInteractions(LocationAlias LocationAliasToToggle)
; CWScript.Log("CWSiegeScript", self + "ToggleOffComplexWIInteractions(" + LocationAliasToToggle + ") calling function on CWScript")
CWs.ToggleOffComplexWIInteractions(LocationAliasToToggle)
EndFunction
function ToggleOnComplexWIInteractions(LocationAlias LocationAliasToToggle)
; CWScript.Log("CWSiegeScript", self + "ToggleOnComplexWIInteractions(" + LocationAliasToToggle + ") calling function on CWScript")
CWs.ToggleOnComplexWIInteractions(LocationAliasToToggle)
EndFunction
scene Property CWAttackerStartingScene Auto
scene Property CWSiegeDefenderStartingScene Auto
Quest Property CWPrepareCity Auto
sound Property AMBCivilWarBattleDistantLP Auto
sound Property AMBCivilWarBattleStart Auto
sound Property AMBCivilWarBattleStartDistant Auto
ObjectReference Property WhiterunAmbExt01 Auto
ObjectReference Property WhiterunAmbExt02 Auto
int Property AMBDistantBattleSoundInstance Auto
{Don't assign a number, gets one when the sound is played as a way to refer to it}
int Property AMBDistantBattleStartInstance Auto
{Don't assign a number, gets one when the sound is played as a way to refer to it}
int Property AMBCloseBattleSoundInstance Auto
{Don't assign a number, gets one when the sound is played as a way to refer to it}
ObjectReference Property WhiterunAmbExt03 Auto
GlobalVariable Property CWDistantCatapultsAMB Auto