public void DoRun(SimpleAI sAI, string code) { if (code == "Die") { sAI.Destroy(); } TreeObject to = (TreeObject)sAI.mCharacter; if (to.timer < 1.0f) { to.timer += Time.deltaTime; return; } SimpleAI[] SimpleAIs = SimpleAISetSingleton.getInstance().GetComponent <SimpleAISet> ().FindAIsWithRiaus(sAI.mAIRT.transform.position, 5.0f, 1 << LayerMask.NameToLayer("Default"), "Glass"); to.timer = 0.0f; to.mTempLife -= 180 + (int)(30 * to.mStrongRate); for (int i = 0; i < SimpleAIs.Length; i++) { glassObject go = (glassObject)SimpleAIs [i].mCharacter; if (go.mHp > 500) { to.mTempLife += (int)(go.mHp / 500.0f); //Debug.Log ("Grass"); } } }
private float ComputeGreen(SimpleAI sAI) { GameObject g = sAI.mAIRT; Color c = g.GetComponent <MeshRenderer> ().material.color; return(1.0f - c.r); }
public void DoRun(SimpleAI sAI, string code) { if (code == "Die") { sAI.Destroy(); } glassObject go = (glassObject)sAI.mCharacter; if (go.timer < 1.0f) { go.timer += Time.deltaTime; return; } SimpleAI[] SimpleAIs = SimpleAISetSingleton.getInstance().GetComponent <SimpleAISet> ().FindAIsWithRiaus(sAI.mAIRT.transform.position, 5.0f, 1 << LayerMask.NameToLayer("Default"), "Tree"); go.timer = 0.0f; go.mHp -= 50; for (int i = 0; i < SimpleAIs.Length; i++) { TreeObject to = (TreeObject)SimpleAIs [i].mCharacter; if (to.mTempLife > 1500) { go.mHp += (int)(to.mTempLife / 50.0f); } } }
public void RePairRTObject() { if (mRTObjectSet != null) { for (int i = 0; i < mRTObjectSet.Length; i++) { GameObject.Destroy(mRTObjectSet [i].mAIRT); SimpleAISetSingleton.getInstance().GetComponent <SimpleAISet> ().Delete(mRTObjectSet [i]); } } mRTObjectSet = new SimpleAI[mGAObjectSet.Length]; for (int i = 0; i < mRTObjectSet.Length; i++) { mRTObjectSet [i] = new SimpleAI(); mRTObjectSet [i].Init(mRTObjectRunner, mRTObjectJudger, mPrefab, mPlayer, mGAObjectSet[i].mPosition); mRTObjectSet [i].mSimpleAIDestroyer = mRTObjectDestroyer; mRTObjectSet [i].mSimpleAIRepairer = mSimpleAIRePairer; mRTObjectSet [i].mType = mRTType; mRTObjectSet [i].mCharacter = mGAObjectSet [i]; mRTObjectSet [i].mSimpleAIRepairer.DoRePair(mRTObjectSet[i]); mRTObjectSet [i].mName = mRTType + "index" + i; } }
public void DoRePair(SimpleAI sAI) { //glassObject tgo = sAI.mCharacter; sAI.mAIRT.GetComponent <MeshRenderer> ().material.color = Color.Lerp(Color.yellow, Color.green, ((glassObject)sAI.mCharacter).mColor); //sAI.mAIRT.GetComponent<MeshRenderer> ().material.color = Color.Lerp(((glassObject)sAI.mCharacter).mColor,Color.yellow,(((glassObject)sAI.mCharacter).mHeight-1.0f)/1.5f); sAI.mAIRT.transform.localScale = new Vector3(((glassObject)sAI.mCharacter).mAllhp / 2000.0f, ((glassObject)sAI.mCharacter).mHeight, ((glassObject)sAI.mCharacter).mAllhp / 2000.0f); sAI.mAIRT.tag = "Glass"; }
public string DoJudge(SimpleAI pSimpleAI) { if (((glassObject)pSimpleAI.mCharacter).mHp < 0) { return("Die"); } else { return("Idle"); } }
public string DoJudge(SimpleAI pSimpleAI) { if (((TreeObject)pSimpleAI.mCharacter).mTempLife < 0) { return("Die"); } else { return("Idle"); } }
public void DoRePair(SimpleAI sAI) { sAI.mAIRT.transform.localScale = new Vector3(1 + ((CowObject)sAI.mCharacter).mStrongRate, 1 + ((CowObject)sAI.mCharacter).mStrongRate, 1 + ((CowObject)sAI.mCharacter).mStrongRate); if (((CowObject)(sAI.mCharacter)).Type) { sAI.mAIRT.GetComponent <MeshRenderer> ().material.color = Color.red; } else { sAI.mAIRT.GetComponent <MeshRenderer> ().material.color = Color.blue; } }
// add a object new public void Add(SimpleAI pSimpleAI) { GAObject[] tGAObjects = new GAObject[mGAObjectSet.Length + 1]; SimpleAI[] tSimpleAIs = new SimpleAI[mRTObjectSet.Length + 1]; for (int i = 0; i < mGAObjectSet.Length; i++) { tGAObjects [i] = mGAObjectSet [i]; tSimpleAIs [i] = mRTObjectSet [i]; } tGAObjects [tGAObjects.Length - 1] = pSimpleAI.mCharacter; tSimpleAIs [tGAObjects.Length - 1] = pSimpleAI; mGAObjectSet = tGAObjects; mRTObjectSet = tSimpleAIs; }
public string DoJudge(SimpleAI sAI) { if (((CowObject)sAI.mCharacter).mTempLife < 0) { return("Die"); } else { if ((int)(((CowObject)sAI.mCharacter).timer / 8.0f) % 2 == 0) { return("FindFood"); } else { return("Round"); } } }
// destroy a AI should be delete in GAPopulation public void Delete(SimpleAI pSimpleAI) { GAObject[] tGAObjects = new GAObject[mGAObjectSet.Length - 1]; SimpleAI[] tSimpleAIs = new SimpleAI[mRTObjectSet.Length - 1]; int index = 0; for (int i = 0; i < mGAObjectSet.Length; i++) { if (mRTObjectSet [i] == pSimpleAI) { continue; } tGAObjects [index] = mGAObjectSet [i]; tSimpleAIs [index] = mRTObjectSet [i]; index++; } mGAObjectSet = tGAObjects; mRTObjectSet = tSimpleAIs; // Debug.Log (mRTObjectSet.Length); }
public void DoRePair(SimpleAI sAI) { TreeObject to = (TreeObject)sAI.mCharacter; sAI.mAIRT.transform.localScale = sAI.mAIRT.transform.localScale * (to.mStrongRate + 1.0f); }
public void DoDestroy(SimpleAI sAI) { }
public void DoRun(SimpleAI sAI, string code) { string s = code; ((CowObject)sAI.mCharacter).timer += Time.deltaTime; if (((int)((CowObject)sAI.mCharacter).timer) - ((CowObject)sAI.mCharacter).lastTime > 0) { ((CowObject)sAI.mCharacter).mTempLife -= 30 + (int)(10 * ((CowObject)sAI.mCharacter).mStrongRate); ((CowObject)sAI.mCharacter).lastTime = ((int)((CowObject)sAI.mCharacter).timer); } if (code == "Die") { sAI.Destroy(); } else if (code == "Round") { ((CowObject)sAI.mCharacter).mGlassTarget = null; if (((CowObject)sAI.mCharacter).RoundTimer > 0.0f && (((CowObject)sAI.mCharacter)).RoundTarget != Vector3.zero) { float distance = Vector3.Distance(sAI.mAIRT.transform.position, ((CowObject)sAI.mCharacter).RoundTarget); if (distance > 1.5f) { sAI.GetComponent <AIMove> ().mDirection = ((CowObject)sAI.mCharacter).RoundTarget - sAI.mAIRT.transform.position; sAI.GetComponent <AIMove> ().mDirection.y = 0.0f; sAI.GetComponent <AIMove> ().mVelocity = ((CowObject)sAI.mCharacter).mVelocity; } else { sAI.GetComponent <AIMove> ().mVelocity = 0.0f; } ((CowObject)sAI.mCharacter).RoundTimer -= Time.deltaTime; } else { ((CowObject)sAI.mCharacter).RoundTimer = 4.5f; ((CowObject)sAI.mCharacter).RoundTarget = sAI.GeneratePos + new Vector3(Random.Range(-10, 10), 0, Random.Range(-10, 10)); } } else { ((CowObject)sAI.mCharacter).RoundTarget = Vector3.zero; ((CowObject)sAI.mCharacter).RoundTimer = 0.0f; if (((CowObject)sAI.mCharacter).mGlassTarget == null || ((CowObject)sAI.mCharacter).mGlassTarget.mAIRT == null) { SimpleAI[] SimpleAIs = SimpleAISetSingleton.getInstance().GetComponent <SimpleAISet> ().FindAIsWithRiaus(sAI.mAIRT.transform.position, 9.5f, 1 << LayerMask.NameToLayer("Default"), "Glass"); int startIndex = Random.Range(0, SimpleAIs.Length); bool Type = ((CowObject)sAI.mCharacter).Type; for (int i = startIndex; i < SimpleAIs.Length; i++) { float f2 = ComputeGreen(SimpleAIs[i]); if (f2 > 0.5f && f2 < 0.75f) { f2 += 0.25f; } else if (f2 < 0.5f && f2 > 0.25f) { f2 -= 0.25f; } if (Type) { f2 = f2; if (f2 < 0.15f) { f2 -= 0.11f; } } else { f2 = 1.0f - f2; if (f2 < 0.15f) { f2 -= 0.11f; } } if (Random.Range(0.0f, 1.0f) < f2) { ((CowObject)sAI.mCharacter).mGlassTarget = SimpleAIs [i]; //Debug.Log (SimpleAIs[i].mAIRT.GetComponent<MeshRenderer>().material.color+" "+Type.ToString()); break; } } s += "Finding"; } else { float distance = Vector3.Distance(sAI.mAIRT.transform.position, ((CowObject)sAI.mCharacter).mGlassTarget.mAIRT.transform.position); if (distance > 1.5f) { sAI.GetComponent <AIMove> ().mDirection = ((CowObject)sAI.mCharacter).mGlassTarget.mAIRT.transform.position - sAI.mAIRT.transform.position; sAI.GetComponent <AIMove> ().mDirection.y = 0.0f; sAI.GetComponent <AIMove> ().mVelocity = ((CowObject)sAI.mCharacter).mVelocity; } else { sAI.GetComponent <AIMove> ().mVelocity = 0.0f; if (((CowObject)sAI.mCharacter).EatTimer < 1.0f) { ((CowObject)sAI.mCharacter).EatTimer += Time.deltaTime; } else { ((CowObject)sAI.mCharacter).mTempLife += 40; ((CowObject)sAI.mCharacter).mTempLife = Mathf.Min(((CowObject)sAI.mCharacter).mTempLife, ((CowObject)sAI.mCharacter).mLife); ((glassObject)((CowObject)sAI.mCharacter).mGlassTarget.mCharacter).mHp -= 120; } } } } }
public void DoDestroy(SimpleAI sAI) { SimpleAISetSingleton.getInstance().GetComponent <SimpleAISet> ().Delete(sAI); GameObject.Destroy(sAI.mAIRT); GAPopulation.allDic [sAI.mType].Delete(sAI); }
public void Delete(SimpleAI pSimpleAI) { LastFrameRemove.Add(pSimpleAI); }