private void CreateFireball(AI.ActionInfo info) { if (info.action.name.ToLower().StartsWith("fire")) { Vector3 pos = info.startPosition; Vector3 dir = info.targetPosition - pos; dir.Normalize(); Fireball f = new Fireball(info.npcName, Graphics.GraphicCore.GetInitializator().GetDevice(), pos, dir, info, this); Graphics.GraphicCore.GetCurrentSceneManager().AddObject(f.GetFireName(), f, null as Microsoft.DirectX.Direct3D.Effect); } }
public GameLogic(Game.GameManager game, AI.AICore ai) { this.ai = ai; this.game = game; this.deadGuards = new List <GameNPC>(); this.respawnTimers = new List <Timer>(); actions = this.LoadActions("Settings\\AttackSpells.xml"); fireballInfo = new WiccanRede.AI.ActionInfo(); this.camera = Graphics.Camera.GetCameraInstance(); fireballInfo.startPosition = camera.GetVector3Position(); fireballInfo.targetPosition = camera.GetVector3Position(); fireballInfo.targetName = "NPC"; fireballInfo.npcName = "Hrac"; fireballInfo.action = actions[0]; }
/// <summary> /// AI controled NPC do some action /// </summary> /// <param name="info">info about action</param> public void Spell(AI.ActionInfo info) { CreateFireball(info); }
/// <summary> /// fireball from NPC to anybody else /// </summary> /// <param name="nameOfHited"></param> /// <param name="info"></param> public void FireballHit(string nameOfHited, AI.ActionInfo info) { ai.AcceptAction(nameOfHited, info); Logging.Logger.AddInfo(nameOfHited + " zasazen " + info.action.name); }