//========================================================================== /** * @param weaponType * @param ammoType */ public bool Init(eWeaponTypes weaponType, Weapon.eAmmoTypes ammoType, bool autoShoting) { actualWeaponType = weaponType; actualAmmoType = ammoType; automaticShoting = autoShoting; return(true); }
/** * @param initHealth * @param initShield * @param initEnergy * @param rechargeType * @param weaponType * @param ammoType */ public bool InitEnemy(int initLifes, float initHealth, float initShield, float initEnergy, CoreSystems.Energy.eRechargeTypes rechargeType, WeaponSystems.eWeaponTypes weaponType, Weapon.eAmmoTypes ammoType, bool autoShoting) { bool ret = true; ret = nesCoreSys.Init(initLifes, initHealth, initShield, initEnergy, rechargeType) && ret; ret = nesWeapSys.Init(weaponType, ammoType, autoShoting) && ret; return(ret); }
//================================================================================================== /** * @param initHealth * @param initShield * @param initEnergy * @param rechargeType * @param weaponType * @param ammoType */ public bool InitShip(int initLifes, float initHealth, float initShield, float initEnergy, CoreSystems.Energy.eRechargeTypes rechargeType, WeaponSystems.eWeaponTypes weaponType, Weapon.eAmmoTypes ammoType) { bool ret = true; ret = nesCoreSys.Init(initLifes, initHealth, initShield, initEnergy, rechargeType) && ret; ret = nesWeapSys.Init(weaponType, ammoType, false) && ret; ret = SetMoveStyle(false) && ret; nesCoreSys.collisionDamageRate = 1000.0f; return(ret); }
/** * */ public bool ActivateWeapons() { bool weapRet = true; switch (actualWeaponType) { case eWeaponTypes.NoWeapon: for (int i = 0; i < refShipAllWeapons.Length; i++) { if (!refShipAllWeapons[i].nesWeapon.Init(Weapon.eAmmoTypes.NoShoting, ref refShipEnergy)) { weapRet = false; Debug.LogError("WeaponSystems >> eWeaponTypes.NoWeapon >> Weapon `" + refShipAllWeapons[i].name + " (position: " + refShipAllWeapons[i].weaponPosision + ")` was NOT initialized !!"); } refShipAllWeapons[i].gameObject.SetActive(false); refShipAllWeapons[i].autoShot = false; } break; case eWeaponTypes.Custom: break; case eWeaponTypes.ForwardBasic: for (int i = 0; i < refShipAllWeapons.Length; i++) { Weapon.eAmmoTypes tmp = Weapon.eAmmoTypes.NoShoting; if (refShipAllWeapons[i].weaponPosision == "FM") { tmp = actualAmmoType; } if (!refShipAllWeapons[i].nesWeapon.Init(tmp, ref refShipEnergy)) { weapRet = false; Debug.LogError("WeaponSystems >> eWeaponTypes.ForwardBasic >> Weapon `" + refShipAllWeapons[i].name + " (position: " + refShipAllWeapons[i].weaponPosision + ")` was NOT initialized !!"); refShipAllWeapons[i].gameObject.SetActive(false); refShipAllWeapons[i].autoShot = false; } else { if ((tmp > Weapon.eAmmoTypes.Custom) && (tmp < Weapon.eAmmoTypes.END_AMMO_TYPES)) { refShipAllWeapons[i].gameObject.SetActive(true); } else { refShipAllWeapons[i].gameObject.SetActive(false); } refShipAllWeapons[i].autoShot = automaticShoting; } } break; case eWeaponTypes.ForwardBetter: for (int i = 0; i < refShipAllWeapons.Length; i++) { Weapon.eAmmoTypes tmp = Weapon.eAmmoTypes.NoShoting; if (refShipAllWeapons[i].weaponPosision == "FL" || refShipAllWeapons[i].weaponPosision == "FR") { tmp = actualAmmoType; } if (!refShipAllWeapons[i].nesWeapon.Init(tmp, ref refShipEnergy)) { weapRet = false; Debug.LogError("WeaponSystems >> eWeaponTypes.ForwardBetter >> Weapon `" + refShipAllWeapons[i].name + " (position: " + refShipAllWeapons[i].weaponPosision + ")` was NOT initialized !!"); refShipAllWeapons[i].gameObject.SetActive(false); refShipAllWeapons[i].autoShot = false; } else { if ((tmp > Weapon.eAmmoTypes.Custom) && (tmp < Weapon.eAmmoTypes.END_AMMO_TYPES)) { refShipAllWeapons[i].gameObject.SetActive(true); } else { refShipAllWeapons[i].gameObject.SetActive(false); } refShipAllWeapons[i].autoShot = automaticShoting; } } break; case eWeaponTypes.ForwardAdvanced: for (int i = 0; i < refShipAllWeapons.Length; i++) { Weapon.eAmmoTypes tmp = Weapon.eAmmoTypes.NoShoting; if (refShipAllWeapons[i].weaponPosision == "FM" || refShipAllWeapons[i].weaponPosision == "FL" || refShipAllWeapons[i].weaponPosision == "FR") { tmp = actualAmmoType; } if (!refShipAllWeapons[i].nesWeapon.Init(tmp, ref refShipEnergy)) { weapRet = false; Debug.LogError("WeaponSystems >> eWeaponTypes.ForwardAdvanced >> Weapon `" + refShipAllWeapons[i].name + " (position: " + refShipAllWeapons[i].weaponPosision + ")` was NOT initialized !!"); refShipAllWeapons[i].gameObject.SetActive(false); refShipAllWeapons[i].autoShot = false; } else { if ((tmp > Weapon.eAmmoTypes.Custom) && (tmp < Weapon.eAmmoTypes.END_AMMO_TYPES)) { refShipAllWeapons[i].gameObject.SetActive(true); } else { refShipAllWeapons[i].gameObject.SetActive(false); } refShipAllWeapons[i].autoShot = automaticShoting; } } break; case eWeaponTypes.DirectionalBasic: for (int i = 0; i < refShipAllWeapons.Length; i++) { Weapon.eAmmoTypes tmp = Weapon.eAmmoTypes.NoShoting; if (refShipAllWeapons[i].weaponPosision == "FM" || refShipAllWeapons[i].weaponPosision == "FL" || refShipAllWeapons[i].weaponPosision == "FR") { tmp = actualAmmoType; } else if (refShipAllWeapons[i].weaponPosision == "DL" || refShipAllWeapons[i].weaponPosision == "DR") { if (actualAmmoType > Weapon.eAmmoTypes.Toy) { tmp = (actualAmmoType - 1); } else { tmp = actualAmmoType; } } if (!refShipAllWeapons[i].nesWeapon.Init(tmp, ref refShipEnergy)) { weapRet = false; Debug.LogError("WeaponSystems >> eWeaponTypes.DirectionalAdvanced >> Weapon `" + refShipAllWeapons[i].name + " (position: " + refShipAllWeapons[i].weaponPosision + ")` was NOT initialized !!"); refShipAllWeapons[i].gameObject.SetActive(false); refShipAllWeapons[i].autoShot = false; } else { if ((tmp > Weapon.eAmmoTypes.Custom) && (tmp < Weapon.eAmmoTypes.END_AMMO_TYPES)) { refShipAllWeapons[i].gameObject.SetActive(true); } else { refShipAllWeapons[i].gameObject.SetActive(false); } refShipAllWeapons[i].autoShot = automaticShoting; } } break; default: break; } if (!weapRet) { Debug.LogError("WeaponSystems >> At least one weapon was not initialized properly"); } return(weapRet); }
//================================================================================================== /** * @param enType * @param enWave * */ public bool InitEnemy(eScoreObjectTypes enType, int enWave) { bool initialized = true; switch (enType) { case eScoreObjectTypes.EnemyUWingBasic: { float tmpMove = (enWave / 5) * 0.05f; float tmpHeal = 40.0f; float tmpEner = 100.0f; CoreSystems.Energy.eRechargeTypes tmpERec = CoreSystems.Energy.eRechargeTypes.NoRecharge; WeaponSystems.eWeaponTypes tmpWeap = WeaponSystems.eWeaponTypes.NoWeapon; Weapon.eAmmoTypes tmpAmmo = Weapon.eAmmoTypes.NoShoting; bool tmpAuto = false; if (enWave >= 10) { tmpHeal = 60.0f; tmpERec = CoreSystems.Energy.eRechargeTypes.VerySlow; tmpWeap = WeaponSystems.eWeaponTypes.ForwardBasic; tmpAmmo = Weapon.eAmmoTypes.Toy; tmpAuto = true; } if (enWave >= 25) { tmpHeal = 80.0f; tmpERec = CoreSystems.Energy.eRechargeTypes.Slow; tmpAmmo = Weapon.eAmmoTypes.Basic; } // init lifes, health, shield, energy and weapons initialized = InitEnemy(1, tmpHeal, 0.0f, tmpEner, tmpERec, tmpWeap, tmpAmmo, tmpAuto); // init engines initialized = nesEngiSys.Init((2.0f + tmpMove), (1.0f + tmpMove), 0.0f, false) && initialized; } break; case eScoreObjectTypes.EnemyUWingMedium: { float tmpMove = (enWave / 5) * 0.1f; float tmpHeal = 60.0f; float tmpEner = 100.0f; CoreSystems.Energy.eRechargeTypes tmpERec = CoreSystems.Energy.eRechargeTypes.VerySlow; WeaponSystems.eWeaponTypes tmpWeap = WeaponSystems.eWeaponTypes.ForwardBasic; Weapon.eAmmoTypes tmpAmmo = Weapon.eAmmoTypes.Toy; bool tmpAuto = true; if (enWave >= 5) { tmpAmmo = Weapon.eAmmoTypes.Basic; } if (enWave >= 10) { tmpHeal = 80.0f; tmpERec = CoreSystems.Energy.eRechargeTypes.Slow; tmpWeap = WeaponSystems.eWeaponTypes.ForwardBetter; tmpAmmo = Weapon.eAmmoTypes.Toy; } if (enWave >= 20) { tmpAmmo = Weapon.eAmmoTypes.Basic; } if (enWave >= 30) { tmpHeal = 100.0f; tmpERec = CoreSystems.Energy.eRechargeTypes.Medium; tmpWeap = WeaponSystems.eWeaponTypes.ForwardAdvanced; tmpAmmo = Weapon.eAmmoTypes.Toy; } if (enWave >= 50) { tmpAmmo = Weapon.eAmmoTypes.Basic; } // init lifes, health, shield, energy and weapons initialized = InitEnemy(1, tmpHeal, 0.0f, tmpEner, tmpERec, tmpWeap, tmpAmmo, tmpAuto); // init engines initialized = nesEngiSys.Init((3.0f + tmpMove), (2.0f + tmpMove), 0.0f, false) && initialized; } break; default: Debug.LogWarning("ENEMY SETT >> Unknown enemy type"); initialized = false; break; } if (initialized) { scoreType = enType; } nesCoreSys.collisionDamageRate = 1000.0f; return(initialized); }