private void HandleCuriouse(FearActor actor) { isCuriouse = true; isScared = false; UpdateBreakdownAnim(false); motorAnimator.SetIdleAnim(curiouseAnim); motorAnimator.SetWalkAnim(walkStateName); }
private void HandleScared(FearActor actor) { isCuriouse = false; isScared = true; UpdateBreakdownAnim(true); currentBlockAnim = fearBreakDownAnim; motorAnimator.SetIdleAnim(fearAnim); motorAnimator.SetWalkAnim(runAnim); }
public void Init( KinimaticMotorController motorController, NodePathController nodePath, HauntController hauntController, HouseController house, FearController fearController, BarrierController barrierController, ActionLockController actionLockController, CameraController cameraController ) { this.cameraController = cameraController; this.actionLockController = actionLockController; actionLockController.OnLock += HandleActionLock; var body = GetComponent <Rigidbody>(); pather = new PathDirectionController(transform, nodePath.GetRoute, finalOffset); motor = motorController.GetMotor(motorConfig, body, pather); animator = modelRoot.GetComponentInChildren <Animator>(); motorAnimator = new MotorAnimator(pather, animator, walkStateName, idleStateName); var hauntResponder = new HauntResponder() { root = transform }; hauntResponder.onRespond += HandleHaunt; hauntController?.AddResponder(hauntResponder); this.house = house; foreach (var reaction in reactions) { reactionMap[reaction.haunt] = reaction; } fearActor = new FearActor() { house = house, root = transform, maxFear = maxFear }; fearActor.OnScared += HandleScared; fearActor.OnPanic += HandlePanic; fearActor.OnCuriouse += HandleCuriouse; fearController?.AddActor(fearActor); blockable = new BarrierBlockable() { root = transform }; blockable.OnBlock += HandleBlock; blockable.OnUnblock += HandleUnblock; barrierController?.AddBlockable(blockable); currentBlockAnim = breakDownAnim; ui.Init(reactions, fearActor, hauntController); entrance = house.GetEntrance(); }
private void HandlePanic(FearActor actor) { isCuriouse = false; isScared = false; source.clip = panic; source.Play(); UpdateBreakdownAnim(true); isPaniced = true; currentBlockAnim = fearBreakDownAnim; motorAnimator.SetIdleAnim(fearAnim); motorAnimator.SetWalkAnim(runAnim); }
public void Init(List <HauntReaction> reactions, FearActor actor, HauntController hauntController) { this.actor = actor; currentPercent = minFearShow; Dictionary <FearReaction, IconReactionConfig> reactMap = new Dictionary <FearReaction, IconReactionConfig>(); foreach (var config in reactionConfigs) { reactMap[config.reaction] = config; } List <HauntReaction> displayReactions = new List <HauntReaction>(); foreach (var item in reactions) { if (item.reaction == FearReaction.Ignore) { continue; } displayReactions.Add(item); } if (displayReactions.Count == 0) { return; } var reactionIncrement = 1.0f / (displayReactions.Count); for (var index = 0; index < displayReactions.Count; index++) { var reaction = displayReactions[index]; var icon = GameObject.Instantiate(iconPrefab); icon.rectTransform.parent = iconRow; icon.rectTransform.localPosition = Vector3.zero; icon.rectTransform.localScale = Vector3.one; icon.rectTransform.anchorMin = new Vector2(index * reactionIncrement, 0); icon.rectTransform.anchorMax = new Vector2((index + 1) * reactionIncrement, 1); icon.rectTransform.anchoredPosition = Vector2.zero; icon.rectTransform.sizeDelta = Vector2.zero; icon.rectTransform.localRotation = Quaternion.identity; icon.rectTransform.pivot = Vector2.one * .05f; icon.sprite = hauntController.GetIcon(reaction.haunt); icon.color = reactMap[reaction.reaction].color; } }
public void AddActor(FearActor actor) { actor.Init(factors); actors.Add(actor); }