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();
        }
Beispiel #2
0
 static internal void AddControllableToChangeFaction(ChangeFaction cf)
 {
     Helpers.SetField(cf, "m_AllowDirectControl", true);
 }