public void KillSoldier(DamageInfo dmg) { BroadcastMessage("KillYourself", SendMessageOptions.DontRequireReceiver); if (owner_FightInReg != null && shouldDecreaseCountOfOwnerFightInRegOnDeath) { owner_FightInReg.DecreaseCountOfCreatedSoldiers_ForCountRespawnStyle(); } charInfo.IsDead = true; mapLogic.RemoveChar(gameObject); DeadSoldAnim dsAnim = GetDeadSoldAnimForAnim(mainAnim, dmg); DeadSoldInitialInfo dsInitialInfo = new DeadSoldInitialInfo(); dsInitialInfo.damageInfo = dmg; dsInitialInfo.curRunningSoldAnim = mainAnim; dsInitialInfo.curRunningSoldAnimTime = bodyInfo.animation[mainAnim].time; dsInitialInfo.curRunningSoldAnimTime = 0; dsInitialInfo.deadSoldAnim = dsAnim; dsInitialInfo.initialPos = transform.position; dsInitialInfo.initialRot = transform.rotation; dsInitialInfo.offset = body.transform.localPosition; dsInitialInfo.voiceInfo = voiceInfo; if ((dmg.damageType != DamageType.Explosion) && (Random.Range(0f, 0.9999f) < soldierGeneralInfo.DieAnimChance) && (deadSoldier != null) && (dsAnim != null)) { DeadSoldier newDeadSoldier = Instantiate(deadSoldier, transform.position, transform.rotation) as DeadSoldier; newDeadSoldier.StartThisZombie(dsInitialInfo); //if(isMoving) } else { SoldierBodyInfo sBInfo = gameObject.GetComponentInChildren <SoldierBodyInfo>(); Transform solBody = sBInfo.gameObject.transform; solBody.parent = null; RagdollCreator rdCreator = solBody.GetComponent <RagdollCreator>(); rdCreator.MakeRagdoll(dmg, dsInitialInfo, true); } Destroy(gameObject); }
// public virtual void Init(Transform contSoldier) { controlledSoldier = contSoldier; soldInfo = controlledSoldier.GetComponent <SoldierInfo>(); charInfo = controlledSoldier.GetComponent <CharacterInfo>(); soldAnimObj = soldInfo.animObject; soldTr = controlledSoldier.transform; soldCharController = controlledSoldier.GetComponent <CharacterController>(); soldCharInfo = controlledSoldier.GetComponent <CharacterInfo>(); mapLogic = soldInfo.mapLogic; playerObj = mapLogic.player; playerCharNew = mapLogic.playerCharNew; //mf soldBodyInfo = soldInfo.bodyInfo; //~mf }
public void Init_SetControlledSoldier(GameObject _soldier) { controlledSoldier = _soldier; if (controlledSoldier != null) { soldInfo = controlledSoldier.GetComponent <SoldierInfo>(); soldCharInfo = controlledSoldier.GetComponent <CharacterInfo>(); soldAnimObj = soldInfo.animObject; soldBodyInfo = soldInfo.bodyInfo; } else { soldInfo = null; soldCharInfo = null; soldAnimObj = null; soldBodyInfo = null; } }
public void Init() { childSkinnedMeshRenderers = GetComponentsInChildren <SkinnedMeshRenderer>(); childMeshRenderers = GetComponentsInChildren <MeshRenderer>(); charInfo = GetComponent <CharacterInfo>(); bodyInfo = GetComponentInChildren <SoldierBodyInfo>(); body = bodyInfo.gameObject; //fullAnimationsClip = bodyInfo.fullAnimsClip; charInfo.shootRaycastTargets = bodyInfo.shootRaycastTargets; Vector3 oldPos; CharacterController soldGenInfoCharController = soldierGeneralInfo.GetComponent <CharacterController>(); charController = gameObject.AddComponent <CharacterController>(); charController.center = soldGenInfoCharController.center; charController.slopeLimit = soldGenInfoCharController.slopeLimit; charController.stepOffset = soldGenInfoCharController.stepOffset; charController.radius = soldGenInfoCharController.radius; charController.height = soldGenInfoCharController.height; //soldierRoot = bodyInfo.soldierRoot; //soldierUpperBodyRoot = bodyInfo.soldierUpperBodyRoot; //soldierGunRoot = bodyInfo.soldierGunRoot; soldierGunFireTr = bodyInfo.soldierGunFireTr; animObject = bodyInfo.SoldierAnimObject; soldierEye = bodyInfo.soldierEyeTr; movementInfos = soldierGeneralInfo.movementInfos; idleInfos = soldierGeneralInfo.idleInfos; //voiceAudioSource = GameObject.Instantiate(soldierGeneralInfo.AudioSource_Voice) as AudioSource; //oldPos = voiceAudioSource.transform.position; //voiceAudioSource.transform.parent = gameObject.transform; //voiceAudioSource.transform.localPosition = oldPos; //footStepsAudioSource = GameObject.Instantiate(soldierGeneralInfo.AudioSource_FootSteps) as AudioSource; //oldPos = footStepsAudioSource.transform.position; //footStepsAudioSource.transform.parent = gameObject.transform; //footStepsAudioSource.transform.localPosition = oldPos; //gunAudioSource = GameObject.Instantiate(soldierGeneralInfo.AudioSource_Gun) as AudioSource; //oldPos = gunAudioSource.transform.position; //gunAudioSource.transform.parent = gameObject.transform; //gunAudioSource.transform.localPosition = oldPos; if (charInfo.FightSide == FightSideEnum.Ally) { voiceAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_Ally_Voice) as AudioInfo; } else { voiceAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_Voice) as AudioInfo; } oldPos = voiceAudioInfo.transform.position; voiceAudioInfo.transform.parent = gameObject.transform; voiceAudioInfo.transform.localPosition = oldPos; if (charInfo.FightSide == FightSideEnum.Ally) { footStepsAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_Ally_FootSteps) as AudioInfo; } else { footStepsAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_FootSteps) as AudioInfo; } oldPos = footStepsAudioInfo.transform.position; footStepsAudioInfo.transform.parent = gameObject.transform; footStepsAudioInfo.transform.localPosition = oldPos; if (charInfo.FightSide == FightSideEnum.Ally) { gunAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_Ally_Gun) as AudioInfo; } else { gunAudioInfo = GameObject.Instantiate(soldierGeneralInfo.AudioInfo_Gun) as AudioInfo; } oldPos = gunAudioInfo.transform.position; gunAudioInfo.transform.parent = gameObject.transform; gunAudioInfo.transform.localPosition = oldPos; charInfo.fightHaloRaycastTargets = new Transform[soldierGeneralInfo.fightHaloRaycastTargets.Length]; for (int i = 0; i < soldierGeneralInfo.fightHaloRaycastTargets.Length; i++) { Transform tr = GameObject.Instantiate(soldierGeneralInfo.fightHaloRaycastTargets[i]) as Transform; oldPos = tr.position; tr.parent = gameObject.transform; tr.localPosition = oldPos; charInfo.fightHaloRaycastTargets[i] = tr; } InitAStar(); mapLogic = MapLogic.Instance; mapLogic.AddChar(gameObject); //soundPlay_VoiceMain.Init(voiceAudioSource); ResetVoiceBusyTimeCounter(); //soundPlay_VoiceMain.OnPlay += ResetVoiceBusyTimeCounter; gun = gameObject.AddComponent <SoldierGun>(); gun.InitGun(gunInfo); //gun.InitAudioSource(gunAudioSource); gun.InitAudioInfo(gunAudioInfo); fightRange = Mathf.Min(gun.range, charInfo.Range); footStepRaycastStartTr = soldierGeneralInfo.footRayCastStartTr; footStepRaycastEndTr = soldierGeneralInfo.footRayCastEndTr; footStepDelayGraph = soldierGeneralInfo.footStepDelayGraph; footStepSoundList = soldierGeneralInfo.footStepSoundList; soldHead = charInfo.characterHead; if (PlayerCharacterNew.Instance != null) { plHead = PlayerCharacterNew.Instance.gameObject.GetComponent <CharacterInfo>().characterHead; //plLeftView = PlayerCharacterNew.Instance.leftViewTr; //plRightView = PlayerCharacterNew.Instance.rightViewTr; } isInited = true; }