public static Barrier ConsBarrier( ActorData caster, StandardBarrierData data, Vector3 targetPos, Vector3 facingDir, SequenceSource seqSource, List <GameObject> prefabOverride = null) { Log.Info($"Spawning barrier by {caster.DisplayName}: max duration {data.m_maxDuration}, max hits {data.m_maxHits}, end on caster death {data.m_endOnCasterDeath}"); return(new Barrier( ArtemisServerResolutionManager.Get().NextBarrierGuid, "", targetPos, facingDir, data.m_width, data.m_bidirectional, data.m_blocksVision, data.m_blocksAbilities, data.m_blocksMovement, data.m_blocksPositionTargeting, data.m_considerAsCover, data.m_maxDuration, caster, prefabOverride ?? data.m_barrierSequencePrefabs, true, data.m_onEnemyMovedThrough, data.m_onAllyMovedThrough, data.m_maxHits, data.m_endOnCasterDeath, seqSource, caster.GetTeam())); }
protected override void MakeBarriers(SequenceSource seqSource) { StandardBarrierData data = Ability.ModdedBarrierData(); BarrierPayload payload = new BarrierPayload(); payload.OnEnemyHit = delegate(Barrier barrier) { payload.RemoveAtTurnEnd = true; }; payload.GetTechPointsForCaster = barrier => Ability.GetBaseTechPointInteractions(); foreach (Vector3 facingDir in new List <Vector3>() { new Vector3(0, 0, 1), new Vector3(1, 0, 0) }) { var barrier = Utils.ConsBarrier(m_caster, data, m_targetPos, facingDir, seqSource, Ability.ModdedBarrierSequencePrefab()); Barriers.Add(barrier); ArtemisServerBarrierManager.Get().SetBarrierPayload(barrier, payload); } }