void akShoot() { muzzleFlash.Play(); currentAmmo--; RaycastHit akHitInfo; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out akHitInfo, akRange)) { Debug.Log(akHitInfo.transform.name); SoldierAI enemy = akHitInfo.transform.GetComponent <SoldierAI>(); if (enemy != null) { enemy.health = 0; } if (akHitInfo.rigidbody != null) { akHitInfo.rigidbody.AddForce(-akHitInfo.normal * impactForce); } GameObject impactPS = Instantiate(impactEffect, akHitInfo.point, Quaternion.LookRotation(akHitInfo.normal)); Destroy(impactPS, 1f); } }
// 訓練Rookie單位 public ISoldier TrainRookie(ENUM_Weapon emWeapon, int Lv) { // 產生物件 SoldierRookie theSoldier = new SoldierRookie(); // 設定模型 GameObject tmpGameObject = CreateGameObject("RookieGameObjectName"); tmpGameObject.gameObject.name = "SoldierRookie"; theSoldier.SetGameObject(tmpGameObject); // 加入武器 IWeapon Weapon = CreateWeapon(emWeapon); theSoldier.SetWeapon(Weapon); // 取得Soldier的數值,設定給角色 SoldierAttr theSoldierAttr = CreateSoliderAttr(1); theSoldierAttr.SetSoldierLv(Lv); theSoldier.SetCharacterAttr(theSoldierAttr); // 加入AI SoldierAI theAI = CreateSoldierAI(); theSoldier.SetAI(theAI); // 加入管理器 //PBaseDefenseGame.Instance.AddSoldier( theSoldier as ISoldier ); return(theSoldier as ISoldier); }
// 加入角色AI public override void AddAI(ICharacter pRole) { // 加入AI SoldierAI theAI = CreateSoldierAI(); pRole.SetAI(theAI); }
public Soldier(Vector2 spawnPosition, Texture2D texture, List <Entity> obstacles, int team) : base(spawnPosition, texture, obstacles, team) { soldierAI = new SoldierAI(); AIMouseInput aiMouse = new AIMouseInput(); HeroAnimationHandler animationHandler; soldierAI.Team = team; if (soldierAI.Team == 1) { animationHandler = new HeroAnimationHandler(Textures.heroTexture); animationHandler.animations = CreateHeroAnimations(); } else { animationHandler = new HeroAnimationHandler(Textures.EnemyTexture); animationHandler.animations = CreateEnemyAnimations(); } Scale = 1f; animationHandler.Mouse = aiMouse; _AnimationHandler = animationHandler; Health = 10; MaxHealth = 10; soldierAI.Soldier = this; soldierAI.SoldierHealth = this; ((AIInput)Input).soldierAI = soldierAI; ((AIMouseInput)animationHandler.Mouse).soldierAI = soldierAI; Weapon = new Weapon(this, aiMouse); Weapon.Mouse = animationHandler.Mouse; soldierAI.RandomPlatform(); }
// 训练Caption单位 public ISoldier TrainCaption(ENUM_Weapon emWeapon, int Lv) { // 产生物件 SoldierCaptain theSoldier = new SoldierCaptain(); // 设定模型 GameObject tmpGameObject = CreateGameObject("CaptainGameObjectName"); tmpGameObject.gameObject.name = "SoldierCaptain"; theSoldier.SetGameObject(tmpGameObject); // 加入武器 IWeapon Weapon = CreateWeapon(emWeapon); theSoldier.SetWeapon(Weapon); // 取得Soldier的数值,设定给角色 SoldierAttr theSoldierAttr = CreateSoliderAttr(3); theSoldierAttr.SetSoldierLv(Lv); theSoldier.SetCharacterAttr(theSoldierAttr); // 加入AI SoldierAI theAI = CreateSoldierAI(); theSoldier.SetAI(theAI); // 加入管理器 //PBaseDefenseGame.Instance.AddSoldier( theSoldier as ISoldier ); return(theSoldier as ISoldier); }
void Awake() { teamMat = Random.Range(0, 10); GetComponent <TeamMember>().matIndex = teamMat; rb = GetComponent <Rigidbody>(); ai = GetComponent <SoldierAI>(); playerManager = GameObject.Find("Player Manager").GetComponent <Players>(); killfeed = GameObject.Find("Killfeed").GetComponent <Killfeed>(); }
public override void setAI() { m_soldierBuildParam.character.getGameObject().AddComponent <Seeker>(); m_soldierBuildParam.character.getGameObject().AddComponent <SimpleSmoothModifier>(); SoldierAI soldierAI = new SoldierAI(m_soldierBuildParam.character); //soldierAI.setTarget(m_soldierBuildParam.target); soldierAI.init(); m_soldierBuildParam.character.AI = soldierAI; }
void RifleShoot() { RaycastHit rifleHitInfo; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out rifleHitInfo, rifleRange)) { SoldierAI enemy = rifleHitInfo.transform.GetComponent <SoldierAI>(); if (enemy != null) { enemy.health = 0; } if (rifleHitInfo.rigidbody != null) { rifleHitInfo.rigidbody.AddForce(-rifleHitInfo.normal * impactForce); } } }
// public SoldierCaptive( IEnemy theEnemy) { m_emSoldier = ENUM_Soldier.Captive; m_Captive = theEnemy; // 設定成像 SetGameObject( theEnemy.GetGameObject() ); // 將Enemy數值轉成Soldier用的 SoldierAttr tempAttr = new SoldierAttr(); tempAttr.SetSoldierAttr( theEnemy.GetCharacterAttr().GetBaseAttr() ); tempAttr.SetAttStrategy( theEnemy.GetCharacterAttr().GetAttStrategy()); tempAttr.SetSoldierLv( 1 ); // 設定為1級 SetCharacterAttr( tempAttr ); // 設定武器 SetWeapon( theEnemy.GetWeapon() ); // 更改為SoldierAI m_AI = new SoldierAI( this ); m_AI.ChangeAIState( new IdleAIState() ); }
// public SoldierCaptive(IEnemy theEnemy) { m_emSoldier = ENUM_Soldier.Captive; m_Captive = theEnemy; // 設定成像 SetGameObject(theEnemy.GetGameObject()); // 將Enemy數值轉成Soldier用的 SoldierAttr tempAttr = new SoldierAttr(); tempAttr.SetSoldierAttr(theEnemy.GetCharacterAttr().GetBaseAttr()); tempAttr.SetAttStrategy(theEnemy.GetCharacterAttr().GetAttStrategy()); tempAttr.SetSoldierLv(1); // 設定為1級 SetCharacterAttr(tempAttr); // 設定武器 SetWeapon(theEnemy.GetWeapon()); // 更改為SoldierAI m_AI = new SoldierAI(this); m_AI.ChangeAIState(new IdleAIState()); }
// 加入AI(Soldier) public override void AddAI() { SoldierAI theAI = new SoldierAI( m_BuildParam.NewCharacter ); m_BuildParam.NewCharacter.SetAI( theAI ); }
// 加入AI public override void AddAI() { SoldierAI theAI = new SoldierAI(m_BuildParam.NewCharacter); m_BuildParam.NewCharacter.SetAI(theAI); }
public void SetAI(SoldierAI theAI) { }
/// <summary> /// Messy debug method to create a mock solder from thin air. Will never be called in the real game; soldiers would be placed /// According to the metagame progression. /// </summary> private void CreateAndPlaceTestSoldier(int x, int y, Owner owner, string name, float hueShift, float talentLevel, int job, SoldierAI ai) { Soldier test = GameObject.Instantiate <Soldier>(soldierPrefab); float talent = .1f; string charName = ""; switch (talentLevel) { case 0: talent = 1.201f; charName = "Colleen Hunter"; break; case 1: talent = 1.158f; charName = "Kiriko Nekoyama"; break; case 2: talent = 1.121f; charName = "Rose Diamond"; break; case 3: talent = 1.094f; charName = "Vicki Tonkinese"; break; case 4: talent = 1.073f; charName = "Misty Aurata"; break; case 5: talent = 1.053f; charName = "Heather Iberia"; break; case 6: talent = 1.035f; charName = "Morrigan Kella"; break; case 7: talent = 1.017f; charName = "Joanna Lynx"; break; case 8: talent = 1.00f; charName = "Chamomile Tigon"; break; } test.Init(ai, new Vector2Int(x, y), new SoldierStats(ClassDatabase.Instance.classes[job], talent, charName), owner, manager); test.InitGraphics(hueShift); test.name = name; manager.AddSoldierToBattle(test); }
public override void AddAI() { SoldierAI theAI = new SoldierAI(m_buildParam.NewBuding); m_buildParam.NewBuding.SetAI(theAI); }
public void SetAI(SoldierAI theAI ){}