public override void RunAction() { //relevant dominate buffs // guid for dominatepersonbuff c0f4e1c24c9cd334ca988ed1bd9d201f UnitEntityData unit = GameHelper.GetTargetsAround(this.Target.Point, 1.Feet().Meters * 0.1f, false, false).FirstOrDefault(); if (unit != null && unit.IsPlayerFaction) { List <Buff> buffsToRemove = new List <Buff>(); foreach (Buff buff in unit.Buffs.Enumerable) { //UnitEntityData entity = buff.MaybeContext?.MaybeCaster; //if(entity !=null) //{ // Common.AddBattleLogMessage($"{buff.Name} has caster {entity.CharacterName}"); //} if (buff.Blueprint.Name == "Domination" && buff.MaybeContext?.MaybeCaster == this.Context.MaybeCaster) { buffsToRemove.Add(buff); } } if (buffsToRemove.Count > 0) { ChangeFaction fcf = new ChangeFaction(); //fcf.Fact.MaybeContext?.MaybeCaster buffsToRemove[0].Remove(); Common.AddBattleLogMessage($"{unit.CharacterName} released from domination"); return; } } base.RunAction(); }
static internal void AddControllableToChangeFaction(ChangeFaction cf) { Helpers.SetField(cf, "m_AllowDirectControl", true); }