public void HandleRadius(Entity owner, Entity originalTarget, ImpactRadiusTypes radiusType) { if (_radiusHandlers.TryGetValue((int)radiusType, out var handler)) { handler.HandleRadius(owner, originalTarget); } }
public static List <Point3> RadiusPoints(this ImpactRadiusTypes radius, Point3 center, Directions fwd) { if (radius == ImpactRadiusTypes.Single) { return(null); } switch (radius) { default: case ImpactRadiusTypes.Single: return(null); case ImpactRadiusTypes.Cross: return(RadiusPnts(_surrounding4Way, center, 1)); case ImpactRadiusTypes.Cross2: return(RadiusPnts(_surrounding4Way, center, 2)); case ImpactRadiusTypes.Radius1: return(RadiusPnts(_surrounding8Way, center, 2)); case ImpactRadiusTypes.Radius2: return(RadiusPnts(_surrounding8Way, center, 3)); case ImpactRadiusTypes.Radius3: return(RadiusPnts(_surrounding8Way, center, 4)); case ImpactRadiusTypes.Cone: return(GetOctantPnts(center, 2, fwd)); } }
public static float ToFloat(this ImpactRadiusTypes radius) { switch (radius) { case ImpactRadiusTypes.Radius1: return(Game.MapCellSize); case ImpactRadiusTypes.Radius2: return(Game.MapCellSize * 2); case ImpactRadiusTypes.Radius3: return(Game.MapCellSize * 3); } return(0); }
public ProjectileTemplate(DataEntry data) { Data = data; ID = data.ID; Type = data.TryGetValue("Type", data.ID); Movement = data.TryGetValue("Movement", "Simple"); Speed = data.TryGetValue("Speed", 0f); Rotation = data.TryGetValue("Rotation", 0f); CollisionDistance = data.TryGetValue("CollisionDistance", 0.25f); Size = data.TryGetValue("Size", 0f); Length = data.TryGetValue("Length", 0f); Timeout = data.TryGetValue(DatabaseFields.Timeout, _defaultTimeout.Value); GlowPower = data.TryGetValue("GlowPower", 0f); TrailAmount = data.TryGetValue("TrailAmount", 0); TrailFrequency = data.TryGetValue("TrailFrequency", 0f); TrailColor = data.TryGetValue("TrailColor", Color.black); Radius = ParseUtilities.TryParseEnum(data.GetValue <string>("Radius"), ImpactRadiusTypes.Single); Billboard = ParseUtilities.TryParseEnum(data.GetValue <string>("Billboard"), BillboardMode.FaceCamYDiff); MainColor = data.TryGetValue("MainColor", Color.white); OffsetColor = data.TryGetValue("OffsetColor", Color.white); PoolSize = data.TryGetValue("PoolSize", _defaultPool); var afx = data.GetValue <string>(DatabaseFields.ActionFx); if (!string.IsNullOrEmpty(afx)) { ActionFx = ItemPool.LoadAsset <ActionFx>(UnityDirs.ActionFx, afx); } var model = data.GetValue <string>(DatabaseFields.Model); switch (Type) { default: case "Simple": break; case "SpherePhysics": if (!string.IsNullOrEmpty(model)) { Animation = ItemPool.LoadAsset <SpriteAnimation>(UnityDirs.ActionSpawn, model); } break; case "VolumeLaser": Prefab = model; break; } Components = data.Get(DatabaseFields.Components) as DataList; }
public void AddHandler(ImpactRadiusTypes radius, IRadiusHandler handler) { _radiusHandlers.Add((int)radius, handler); }
public ImpactRadius(ImpactRadiusTypes radius, bool limitToEnemy) { Radius = radius; LimitToEnemy = limitToEnemy; }
public ImpactRadius(ImpactRadiusTypes radius) { Radius = radius; }