private void InitProjectile(int id, IPlayerPawn source, IMapProjectileLogic logic, MapProjectileCallback cb) { Class = ProjectileClassLoader.GetProjectileClassById(id); if (Class == null) { Debug.LogFormat("Invalid projectile created (id={0})", id); return; } Source = source; Logic = logic; if (Logic != null) { Logic.SetProjectile(this); } Callback = cb; Width = 1; Height = 1; Alpha = 1f; Color = new Color(1, 1, 1, 1); ZOffset = 128; Scale = 1; DoUpdateView = true; }
private void InitProjectile(int id, IPlayerPawn source, IMapProjectileLogic logic, MapProjectileCallback cb) { ClassID = (AllodsProjectile)id; Class = ProjectileClassLoader.GetProjectileClassById(id); if (Class == null) { // make sure that at least ID is valid if (!Enum.IsDefined(typeof(AllodsProjectile), id)) { // otherwise spam log Debug.LogFormat("Invalid projectile created (id={0})", id); return; } } Source = source; Logic = logic; if (Logic != null) { Logic.SetProjectile(this); } Callback = cb; Width = 1; Height = 1; Alpha = 1f; Color = new Color(1, 1, 1, 1); ZOffset = 128; Scale = 1; DoUpdateView = true; }
public override void Update() { if (Logic != null) { if (!Logic.Update()) { if (Callback != null) { Callback(this); } else { Dispose(); return; } Logic = null; // logic done } } }
public MapProjectile(int id, IPlayerPawn source = null, IMapProjectileLogic logic = null, MapProjectileCallback cb = null) { InitProjectile(id, source, logic, cb); }
public MapProjectile(AllodsProjectile proj, IPlayerPawn source = null, IMapProjectileLogic logic = null, MapProjectileCallback cb = null) { InitProjectile((int)proj, source, logic, cb); }