Gleb Bazov
Warlord
- Joined
- Feb 13, 2017
- Messages
- 176
The following are the new types included with the most recent patch in GameEffects.xml:
COLLECTIONS
<Row Type="COLLECTION_ALL_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
<Row Type="COLLECTION_PLAYER_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
<Row Type="COLLECTION_TEAM_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
EFFECTS
<Row Type="EFFECT_ADD_DIPLOMATIC_MOVEMENT_MODIFIER" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_IMPROVED_ROUTE_LEVEL" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_MAX_WARMONGER_PERCENT" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_NO_OCCUPATION_PENALTIES" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_UNIT_DAMAGE" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_DIPLOMACY_AGENDA_OPPORTUNIST" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_DIPLOMACY_AGENDA_SHORT_LIFE_GLORY" Kind="KIND_EFFECT"/>
REQUIREMENTS
<Row Type="REQUIREMENT_PLAYER_HAS_GREAT_PERSON" Kind="KIND_REQUIREMENT"/>
<Row Type="REQUIREMENT_PLAYER_HAS_CIVIC" Kind="KIND_REQUIREMENT"/>
<Row Type="REQUIREMENT_UNIT_HAS_ABILITY" Kind="KIND_REQUIREMENT"/>
And some interesting new event hooks and functions included in AlexaderScenario.lua
LUA
Event Hooks
GameEvents.CityConquered.Add(OnCityConquered);
Arguments: (UnitOwner, unitID)
GameEvents.OnUnitRetreated.Add(OnUnitRetreated);
Arguments: (capturerID, ownerID, cityID , cityX, cityY)
Declare War on Player function
Players[]:GetDiplomacy(); DeclareWarOn();
DeclareWarOn(X) calls for -- local X = Players[PlayerID]
Grant Great Person function
Game.GetGreatPeople():GrantPerson(individual, class, era, cost, 0, false)
local individual = GameInfo.GreatPersonIndividuals["GREAT_PERSON_INDIVIDUAL_ALEXANDER"].Hash;
local class = GameInfo.GreatPersonClasses["GREAT_PERSON_CLASS_GENERAL"].Hash;
local era = GameInfo.Eras["ERA_CLASSICAL"].Hash;
local cost = 0;
Grant Units in a Valid Adjacent Hex
UnitManager.InitUnitValidAdjacentHex(PlayerID, "UNIT_X", cityX, cityY, numberUnits);
ID Great Person
Unit:GetGreatPerson():GetIndividualHash();
(apparently valid in InScript Context)
Kill Function elaborated
local unit = player:GetUnits():FindID(unitID);
UnitManager.Kill(unit,false);
COLLECTIONS
<Row Type="COLLECTION_ALL_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
<Row Type="COLLECTION_PLAYER_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
<Row Type="COLLECTION_TEAM_CAPTURED_CITIES" Kind="KIND_COLLECTION"/>
EFFECTS
<Row Type="EFFECT_ADD_DIPLOMATIC_MOVEMENT_MODIFIER" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_IMPROVED_ROUTE_LEVEL" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_MAX_WARMONGER_PERCENT" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_PLAYER_NO_OCCUPATION_PENALTIES" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_ADJUST_UNIT_DAMAGE" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_DIPLOMACY_AGENDA_OPPORTUNIST" Kind="KIND_EFFECT"/>
<Row Type="EFFECT_DIPLOMACY_AGENDA_SHORT_LIFE_GLORY" Kind="KIND_EFFECT"/>
REQUIREMENTS
<Row Type="REQUIREMENT_PLAYER_HAS_GREAT_PERSON" Kind="KIND_REQUIREMENT"/>
<Row Type="REQUIREMENT_PLAYER_HAS_CIVIC" Kind="KIND_REQUIREMENT"/>
<Row Type="REQUIREMENT_UNIT_HAS_ABILITY" Kind="KIND_REQUIREMENT"/>
And some interesting new event hooks and functions included in AlexaderScenario.lua
LUA
Event Hooks
GameEvents.CityConquered.Add(OnCityConquered);
Arguments: (UnitOwner, unitID)
GameEvents.OnUnitRetreated.Add(OnUnitRetreated);
Arguments: (capturerID, ownerID, cityID , cityX, cityY)
Declare War on Player function
Players[]:GetDiplomacy(); DeclareWarOn();
DeclareWarOn(X) calls for -- local X = Players[PlayerID]
Grant Great Person function
Game.GetGreatPeople():GrantPerson(individual, class, era, cost, 0, false)
local individual = GameInfo.GreatPersonIndividuals["GREAT_PERSON_INDIVIDUAL_ALEXANDER"].Hash;
local class = GameInfo.GreatPersonClasses["GREAT_PERSON_CLASS_GENERAL"].Hash;
local era = GameInfo.Eras["ERA_CLASSICAL"].Hash;
local cost = 0;
Grant Units in a Valid Adjacent Hex
UnitManager.InitUnitValidAdjacentHex(PlayerID, "UNIT_X", cityX, cityY, numberUnits);
ID Great Person
Unit:GetGreatPerson():GetIndividualHash();
(apparently valid in InScript Context)
Kill Function elaborated
local unit = player:GetUnits():FindID(unitID);
UnitManager.Kill(unit,false);
Last edited: