protected void SetPlayerActor(ActorPlayer actorPlayer, Action logicCallback) { AvatarModel avatarModel = DataReader <AvatarModel> .Get(this.FixModelID); base.Actor = actorPlayer; actorPlayer.theEntity = this; base.Actor.FixGameObject.set_name(base.ID.ToString()); base.Actor.FixGameObject.SetActive(true); base.Actor.InitActionPriorityTable(); base.Actor.CanAnimatorApplyMotion = false; base.Actor.DataLayerState = ((avatarModel.collideOff <= 0) ? 0 : 1); base.Actor.DefaultModelHeight = avatarModel.defaultModelHeight; base.Actor.ModelHeight = avatarModel.defaultModelHeight; base.Actor.IsLockModelDir = (avatarModel.lockDirection == 1); base.Actor.RotateSpeed = avatarModel.RotateSpeed; base.Actor.RotateInterval = (float)avatarModel.rotateInterval; base.Actor.StartRotateAngle = (float)avatarModel.startAngle; base.Actor.FinishRotateAngle = (float)avatarModel.finishAngle; base.Actor.FloatRate = avatarModel.floatProba; ShadowController.ShowShadow(base.ID, base.Actor, false, this.FixModelID); ShaderEffectUtils.InitShaderRenderers(base.Actor.FixTransform, this.shaderRenderers, ref this.shadowRenderer, ref this.shadowSlicePlane); ShaderEffectUtils.InitHitEffects(this.shaderRenderers, this.hitControls); ShaderEffectUtils.InitTransparencys(this.shaderRenderers, this.alphaControls); ShaderEffectUtils.SetFadeRightNow(this.alphaControls, false); ShaderEffectUtils.SetOutlineStatus(base.Actor.FixTransform, LuminousOutline.Status.Normal); if (avatarModel.curve == 1) { ShaderEffectUtils.SetMeshRenderToLayerFXDistortion(base.Actor.FixTransform); } this.InitBillboard((float)avatarModel.height_HP, avatarModel.bloodBar); WaveBloodManager.Instance.AddWaveBloodControl(base.Actor.FixTransform, (float)avatarModel.height_Damage, base.ID); if (this.IsInBattle) { if (this.IsDead) { CommandCenter.ExecuteCommand(base.Actor.FixTransform, new PlayActionCmd { actName = "die", jumpToPlay = true, percent = 1f }); } else { base.Actor.CastAction("born", true, 1f, 0, 0, string.Empty); } } else { base.Actor.CastAction("idle", true, 1f, 0, 0, string.Empty); } if (logicCallback != null) { logicCallback.Invoke(); } this.InitActorState(); }
public override void CreateActor() { ActorPet petActor = EntityWorld.Instance.GetPetActor(this.FixModelID); Pet pet = DataReader <Pet> .Get(this.TypeID); AvatarModel avatarModel = DataReader <AvatarModel> .Get(this.FixModelID); base.Actor = petActor; petActor.theEntity = this; base.Actor.FixGameObject.set_name(base.ID.ToString()); base.Actor.FixGameObject.SetActive(true); base.Actor.InitActionPriorityTable(); base.Actor.CanAnimatorApplyMotion = false; base.Actor.DataLayerState = ((avatarModel.collideOff <= 0) ? 0 : 1); base.Actor.DefaultModelHeight = avatarModel.defaultModelHeight; base.Actor.ModelHeight = avatarModel.defaultModelHeight; base.Actor.IsLockModelDir = (avatarModel.lockDirection == 1); base.Actor.RotateSpeed = avatarModel.RotateSpeed; base.Actor.RotateInterval = (float)avatarModel.rotateInterval; base.Actor.StartRotateAngle = (float)avatarModel.startAngle; base.Actor.FinishRotateAngle = (float)avatarModel.finishAngle; base.Actor.FloatRate = avatarModel.floatProba; ShadowController.ShowShadow(base.ID, base.Actor, false, this.FixModelID); ShaderEffectUtils.SetHSV(base.Actor.FixTransform, pet.colour); ShaderEffectUtils.InitShaderRenderers(base.Actor.FixTransform, this.shaderRenderers, ref this.shadowRenderer, ref this.shadowSlicePlane); ShaderEffectUtils.InitHitEffects(this.shaderRenderers, this.hitControls); ShaderEffectUtils.InitTransparencys(this.shaderRenderers, this.alphaControls); ShaderEffectUtils.SetFadeRightNow(this.alphaControls, false); ShaderEffectUtils.SetOutlineStatus(base.Actor.FixTransform, LuminousOutline.Status.Normal); if (avatarModel.curve == 1) { ShaderEffectUtils.SetMeshRenderToLayerFXDistortion(base.Actor.FixTransform); } this.InitBillboard((float)avatarModel.height_HP, avatarModel.bloodBar); WaveBloodManager.Instance.AddWaveBloodControl(base.Actor.FixTransform, (float)avatarModel.height_Damage, base.ID); this.InitActorState(); }
public override void EquipSuccess() { ShaderEffectUtils.InitShaderRenderers(base.Actor.FixTransform, this.shaderRenderers, ref this.shadowRenderer, ref this.shadowSlicePlane); ShaderEffectUtils.InitHitEffects(this.shaderRenderers, this.hitControls); ShaderEffectUtils.InitTransparencys(this.shaderRenderers, this.alphaControls); }