public GatherActionRange(BaseActionTemplate action, CharacterTemplate origin, CharacterTemplate target, int range) { Action = action; Origin = origin; Target = target; Range = range; }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { var weapon = character.EquipmentSlots.GetSlot(EquipmentSlotType.Weapon).Item; if (weapon == null) { return(_type == Types.Unarmed); } if (_type == Types.Any) { return(true); } var data = weapon.Get <GenericDataComponent>(); if (data == null) { return(false); } var weaponType = data.GetString(GenericDataTypes.WeaponType); switch (_type) { case Types.Melee: return(weaponType == WeaponTypes.Melee); case Types.Ranged: return(weaponType == WeaponTypes.Ranged); } return(true); }
public ImpactEvent(BaseActionTemplate action, CharacterTemplate origin, CharacterTemplate target, Vector3 hitPoint, Vector3 hitNormal) { Source = action.Entity; Hit = new HitData(CollisionResult.Hit, target, hitPoint, hitNormal); Origin = origin; Target = target; Action = action; }
public ImpactEvent(CollisionEvent collisionEvent, BaseActionTemplate action, CharacterTemplate origin, CharacterTemplate target) { Source = collisionEvent.Source; Hit = new HitData(CollisionResult.Hit, target, collisionEvent.HitPoint, collisionEvent.HitNormal); Origin = origin; Target = target; Action = action; }
public PrepareDamageEvent(CharacterTemplate origin, CharacterTemplate target, BaseActionTemplate action, HitData hit) { Entries = GenericPools.New <List <DamageEntry> >(); Origin = origin; Target = target; Action = action; Hit = hit; }
public string Description(BaseActionTemplate template, CharacterTemplate character) { if (_minLevel > 1) { return(string.Format("Requires: {0} {1}", _minLevel, _label)); } return(string.Format("Requires: {0}", _label)); }
public PrepareDamageEvent(ImpactEvent impact) { Entries = GenericPools.New <List <DamageEntry> >(); Origin = impact.Origin; Target = impact.Target; Action = impact.Action; Hit = impact.Hit; }
public HealingEvent(BaseActionTemplate action, float amount, CharacterTemplate origin, CharacterTemplate target, string targetVital) { Action = action; Amount = amount; Origin = origin; Target = target; TargetVital = targetVital; }
public ActionEvent(BaseActionTemplate action, CharacterTemplate origin, CharacterTemplate target, Vector3 position, Quaternion rotation, ActionState state) { Action = action; Origin = origin; Target = target; Position = position; Rotation = rotation; State = state; }
public ActionEvent(BaseActionTemplate action, CharacterTemplate origin, Entity target, ActionState state) { Action = action; Origin = origin; Target = target.GetTemplate <CharacterTemplate>(); Position = target.GetPosition(); Rotation = target.GetRotation(); State = state; }
public bool CanEffect(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { if (_type == ActionDataTargetType.Target) { var data = target.GenericData; return(data != null && data.GetInt(_data) >= _minAmount); } return(true); }
public TakeDamageEvent(ref PrepareDamageEvent prepareEvent) { Action = prepareEvent.Action; Origin = prepareEvent.Origin; Target = prepareEvent.Target; Hit = prepareEvent.Hit; Entries = prepareEvent.Entries; Amount = prepareEvent.CurrentTotal(); prepareEvent.Entries = null; }
public CheckHitEvent(BaseActionTemplate action, CharacterTemplate origin, CharacterTemplate target, string targetDefense) { Action = action; Origin = origin; Target = target; TargetDefense = targetDefense; DefenseTotal = 0; AttackTotal = 0; Result = 0; }
public ActionSlot(SerializationInfo info, StreamingContext context) { Type = info.GetValue(nameof(Type), Type); _cachedItem = info.GetValue(nameof(_cachedItem), _cachedItem); _owner = info.GetValue(nameof(_owner), _owner); _action = info.GetValue(nameof(_action), _action); LastEquipStatus = info.GetValue(nameof(LastEquipStatus), LastEquipStatus); CompatibleSlots = null; CurrentStats = null; RequiredTypes = new[] { typeof(ActionConfig) }; }
public bool CanEffect(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { for (int i = 0; i < Requirements.Count; i++) { if (!Requirements[i].CanEffect(template, character, target)) { return(false); } } return(true); }
public string Description(BaseActionTemplate template, CharacterTemplate character) { switch (_type) { case Types.Melee: return("Requires: Melee Weapon"); case Types.Ranged: return("Requires: Ranged Weapon"); case Types.Unarmed: return("Requires: Unarmed"); } return(""); }
public bool CanEffect(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { switch (_targetType) { default: case TargetType.Any: return(true); case TargetType.Self: return(character == target); case TargetType.Enemy: return(World.Get <FactionSystem>().AreEnemies(character, target)); case TargetType.Friendly: return(World.Get <FactionSystem>().AreFriends(character, target)); } }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { GenericDataComponent data = null; switch (_type) { case ActionDataTargetType.Action: data = template.Data; break; case ActionDataTargetType.Target: data = character.GenericData; break; case ActionDataTargetType.Owner: data = target.GenericData; break; } return(data != null && data.HasString(_data)); }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { GenericDataComponent data = null; switch (_type) { case ActionDataTargetType.Action: data = template.Data; break; case ActionDataTargetType.Target: data = character.GenericData; break; case ActionDataTargetType.Owner: data = target.GenericData; break; } if (data == null) { return(false); } return(data.GetInt(_data) >= _minAmount); }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { return(character.Position.Value.DistanceCheb(target.Position.Value) <= character.Stats.GetValue(Stats.Reach)); }
public bool CanEffect(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { return(true); }
public string Description(BaseActionTemplate template, CharacterTemplate character) { return(string.Format("Requires: {0}", _targetType)); }
public RaiseDeadEvent(BaseActionTemplate action, CharacterTemplate source, CharacterTemplate target) { Action = action; Origin = source; Target = target; }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { return(character.GenericData.GetInt(_classId) >= _minLevel); }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { return(character.Position.Value.DistanceCheb(target.Position.Value) <= _range); }
public string Description(BaseActionTemplate template, CharacterTemplate character) { return(string.Format("Range: {0}", _range)); }
public string Description(BaseActionTemplate template, CharacterTemplate character) { return("Range: Self"); }
public bool CanTarget(BaseActionTemplate template, CharacterTemplate character, CharacterTemplate target) { return(character == target); }
public string Description(BaseActionTemplate template, CharacterTemplate character) { return(string.Format("Range: {0} Weapon", _isMelee ? "Melee" : "Ranged")); }
public static void PostImpactEvent(CharacterTemplate origin, CharacterTemplate target, BaseActionTemplate action, Vector3 hitPoint, Vector3 hitNormal) { var hitRotation = hitNormal == Vector3.zero ? Quaternion.identity : Quaternion.LookRotation(hitNormal); var ae = new ActionEvent(action, origin, target, hitPoint, hitRotation, ActionState.Impact); World.Get <RulesSystem>().Post(new ImpactEvent(action, origin, target, hitPoint, hitNormal)); origin.Post(ae); }