public void ProcessAnimationAction(AnimationEventTemplate aeTemplate, ActionTemplate action, string animEvent) { var character = aeTemplate.Entity.FindTemplate <CharacterTemplate>(); var ae = new ActionEvent(character, character, aeTemplate.AnimEvent.Position, aeTemplate.AnimEvent.Rotation, AnimationEvents.ToStateEvent(animEvent)); if (ae.State == ActionState.Activate) { Debug.DrawLine( aeTemplate.AnimEvent.Position, aeTemplate.AnimEvent.Rotation.GetPosition(aeTemplate.AnimEvent.Position, 2.5f), Color.red, 5f); } var animationList = action.Config.GetEventHandler(animEvent); if (animationList != null) { for (int i = 0; i < animationList.Count; i++) { animationList[i].Trigger(ae, animEvent); } } if (ae.State != ActionState.None) { aeTemplate.Entity.Post(ae); action.Entity.PostNoGlobal(ae); } if (ae.State == ActionState.Start) { for (int i = 0; i < action.Config.Costs.Count; i++) { action.Config.Costs[i].ProcessCost(ae.Origin, action.Entity); } } }
public PrepareDamageEvent(ImpactEvent impact, CharacterTemplate origin, CharacterTemplate target) { Entries = GenericPools.New <List <DamageEntry> >(); Impact = impact; Origin = origin; Target = target; Action = impact.Action; }
public ActionEvent(ActionTemplate action, CharacterTemplate origin, CharacterTemplate target, Vector3 position, Quaternion rotation, ActionState state) { Action = action; Origin = origin; Target = target; Position = position; Rotation = rotation; State = state; }
public ActionHolder(int chanceNotNormalized, Entity actionEntity, AdvancedTargeting targeting) { Chance = chanceNotNormalized; if (actionEntity != null) { Action = actionEntity.GetTemplate <ActionTemplate>(); } Targeting = targeting; LastRoll = 0; }
public TakeDamageEvent(ref PrepareDamageEvent prepareEvent) { Action = prepareEvent.Action; Origin = prepareEvent.Origin; Target = prepareEvent.Target; Impact = prepareEvent.Impact; Entries = prepareEvent.Entries; Amount = prepareEvent.CurrentTotal(); prepareEvent.Entries = null; }
public ImpactEvent(CollisionEvent collisionEvent, ActionTemplate action, CharacterTemplate origin, CharacterTemplate target) { Source = collisionEvent.Source; Hit = collisionEvent.Hit; Origin = origin; Target = target; HitPoint = collisionEvent.HitPoint; HitNormal = collisionEvent.HitNormal; Action = action; }
public void EquipToEmpty(ActionTemplate actionConfig) { for (int i = 0; i < _actions.Length; i++) { if (_actions[i] == null) { EquipAction(actionConfig, i); return; } } }
public void EquipAction(ActionTemplate template, int slot) { if (_actions.Length <= slot) { System.Array.Resize(ref _actions, slot + 1); } if (_actions[slot] != null) { RemoveAction(slot); } if (template == null) { return; } _actions[slot] = template; template.Config.EquippedSlot = slot; this.GetEntity().Post(new ReadyActionsChanged(slot, template, this)); }
private void FindEventPositionRotation(AnimationEventTemplate aet, ActionTemplate action) { var target = aet.Target; if (action != null) { if (action.Weapon?.Loaded != null) { aet.AnimEvent.Position = action.Weapon.Loaded.Spawn.position; aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? action.Weapon.Loaded.Spawn.rotation; return; } if (action.SpawnPivot != null) { aet.AnimEvent.Position = action.SpawnPivot.position; aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? action.SpawnPivot.rotation; return; } } if (aet.SpriteAnimator?.CurrentFrame != null) { if (aet.SpriteRenderer != null) { aet.AnimEvent.Position = aet.SpriteRenderer.GetEventPosition(aet.SpriteAnimator.CurrentFrame); aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? aet.SpriteRenderer.BaseTr.rotation; } else { aet.AnimEvent.Position = aet.SimpleSpriteRenderer.GetEventPosition(aet.SpriteAnimator.CurrentFrame, action?.Config.EquippedSlot ?? 0); aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? aet.SimpleSpriteRenderer.Rotation; } return; } if (aet.SpawnPivot != null) { aet.AnimEvent.Position = aet.SpawnPivot.position; aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? aet.SpawnPivot.rotation; } else { aet.AnimEvent.Position = aet.Tr.position; aet.AnimEvent.Rotation = target?.GetLookAtTarget(aet.AnimEvent.Position) ?? aet.Tr.rotation; } }
public RaiseDeadEvent(CharacterTemplate source, CharacterTemplate target) { Action = source.CurrentAction; Origin = source; Target = target; }
public ReadyActionsChanged(int index, ActionTemplate action, ReadyActions container) { Index = index; Action = action; Container = container; }