private void Start() { bool isWarlord = SM.IsWarlord(this); bool isOfficer = SM.IsOfficer(this); anim = transform.GetComponent <Animator>(); anim.SetFloat("forDefence", 0.5f); order = new OrdNothing(); enemies = new List <Transform>(); //fixedEnemy = null; closestEnemy = null; closestRad = float.MaxValue; moral = (isWarlord || isOfficer) ? float.MaxValue : SM.GetRndFloat(70f, 130f); rotateSp = isWarlord ? 3.5f : 2.5f; //radians acsel = 3f; stopAcs = 8f; stepForce = isWarlord ? 10f : isOfficer ? 7f : 5f; runSp = 8f; walkSp = 3f; speed = 0f; LorR = SM._rnd.Next(2) == 0 ? LR.Left : LR.Right; seeRadius = 30f; maxHP = isWarlord ? 900f : isOfficer?SM.GetRndFloat(250f, 350f) : SM.GetRndFloat(70f, 130f); health = maxHP; hpPerSecond = 7f; lastLostHP = Time.time; timeBeforeHPrec = 7f; minBleedK = isWarlord ? 0.1f : 0.2f; maxBleedK = isWarlord ? 0.2f : 0.4f; maxEnd = isWarlord ? 500f : isOfficer?SM.GetRndFloat(200f, 250f) : SM.GetRndFloat(80f, 120f); endurance = maxEnd; endPerSecond = isWarlord ? 85 : isOfficer ? 40f : 20f; lastUsedEnd = Time.time; timeBeforeEndRec = 1f; runEndUse = isWarlord ? 60f : isOfficer ? 30f : 15f; bleedingTimeLeft = 0f; lastBleeding = -100f; bleedingIntervals = 0.3f; bleedBaseDamage = 0f; fixedAttack = false; if (SM.IsPrivate(this)) { transform.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_" + army); } else if (isOfficer) { transform.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_Officer_" + army); } else if (isWarlord) { transform.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Base_Warlord_" + army); } transform.Find("L_Hand").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Hand_" + army); transform.Find("R_Hand").GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Soldier/S_Hand_" + army); string eqSet = transform.parent.GetComponent <Soldier_Upper>().eqSet; string golden = isOfficer || isWarlord ? "_Golden" : ""; if (eqSet == "Axe") { string wep = eqSet; Transform RH = transform.Find("R_Hand"); GameObject rWeapon = (GameObject)Instantiate((GameObject)Resources.Load("Soldier/S_Equip_" + wep + golden), RH.position, RH.rotation); rWeapon.transform.parent = RH; rWeapon.gameObject.name = wep; Transform LH = transform.Find("L_Hand"); GameObject lWeapon = (GameObject)Instantiate((GameObject)Resources.Load("Soldier/S_Equip_StrongShield" + golden), LH.position, LH.rotation); lWeapon.transform.parent = LH; lWeapon.gameObject.name = "StrongShield"; weapon = rWeapon; } else if (eqSet == "Sword" || eqSet == "Spear") { string wep = eqSet; Transform RH = transform.Find("R_Hand"); GameObject rWeapon = (GameObject)Instantiate((GameObject)Resources.Load("Soldier/S_Equip_" + wep + golden), RH.position, RH.rotation); rWeapon.transform.parent = RH; rWeapon.gameObject.name = wep; Transform LH = transform.Find("L_Hand"); GameObject lWeapon = (GameObject)Instantiate((GameObject)Resources.Load("Soldier/S_Equip_Shield" + golden), LH.position, LH.rotation); lWeapon.transform.parent = LH; lWeapon.gameObject.name = "Shield"; weapon = rWeapon; } else if (eqSet == "Bow") { string wep = eqSet; Transform LH = transform.Find("L_Hand"); GameObject lWeapon = (GameObject)Instantiate((GameObject)Resources.Load("Soldier/S_Equip_" + wep + golden), LH.position, LH.rotation); lWeapon.transform.parent = LH; lWeapon.gameObject.name = wep; weapon = lWeapon; } mRange = weapon.GetComponent <Weapon>().maxRange; transform.parent.Find("Bars").Find("Health").Find("Filler").GetComponent <UnityEngine.UI.Image>().fillAmount = (float)(health / maxHP); transform.parent.Find("Bars").Find("Endurance").Find("Filler").GetComponent <UnityEngine.UI.Image>().fillAmount = (float)(endurance / maxEnd); if (isWarlord) { SM.FillBars(army, (float)(health / maxHP), (float)(endurance / maxEnd)); } SM.AddSoldier(transform); }