public override void Begin(ExecutionWorker worker) { base.Begin(worker); var ch = worker.Context.GetCharacter(CharId); if (ch == null) { return; } if (ChipId == 65535) { worker.Context.ResetCharacterChip(CharId); } else { if (ChipId >= worker.Context.Scenario.ChipInfo.Length) { return; } var chip = worker.Context.Scenario.ChipInfo[ChipId]; var entry = worker.Context.ResourceLoader.FindByIndex(chip.ChipIndex); ch.Chip = worker.Context.ResourceLoader.LoadAnimation(entry); } }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); var character = worker.Context.GetCharacter(CharId); if (character == null) { return; } _initialPosition = character.Position; var delta = TargetPosition - _initialPosition; var angle = (int)(Math.Atan2(delta.Z, delta.X) * 360 / (2 * Math.PI)) + 90; if (angle < 0) { angle += 360; } var rotation = ExecutionContext.DegreesToAnimationStart(angle); character.AnimationStart = rotation; character.AnimationStep = 8; }
public override void End(ExecutionWorker worker) { base.End(worker); // Set target position var targetPosition = TargetPosition; worker.Context.Scene.Camera.SetLookAt(targetPosition); }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); var ch = worker.Context.GetCharacter(CharId); if (ch == null) { return; } worker.Context.Scene.Camera.SetLookAt(ch.Position); }
public override void Update(ExecutionWorker worker) { base.Update(worker); var targetPosition = TargetPosition; var part = worker.InstructionPassedPart; var newPosition = new Vector3(_initialPosition.X + (targetPosition.X - _initialPosition.X) * part, _initialPosition.Y + (targetPosition.Y - _initialPosition.Y) * part, _initialPosition.Z + (targetPosition.Z - _initialPosition.Z) * part); worker.Context.Scene.Camera.SetLookAt(newPosition); }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); var ch = worker.Context.GetCharacter(CharId); if (ch == null) { return; } ch.AnimationStart = ChipId; }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); var ch = worker.Context.GetCharacter(CharId); if (ch == null) { return; } ch.AnimationStart = ExecutionContext.DegreesToAnimationStart(Angle); }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); foreach (var ins in Block) { ins.Queue = this; } var newWorker = new ExecutionWorker(worker.Context) { Instructions = Block }; newWorker.Context.AdditionalWorkers.Add(newWorker); }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); var target = ExecutionContext.ToPosition(X, Y, Z); var ch = worker.Context.GetCharacter(CharId); if (ch == null) { return; } ch.Position = target; ch.AnimationStart = ExecutionContext.DegreesToAnimationStart(Angle); ch.AnimationStep = 0; }
public override void Update(ExecutionWorker worker) { base.Update(worker); EnsureStringsInternal(); var passed = worker.InstructionPassedInMs; var i = 0; TalkString str; for (; i < TalkStrings.Length; ++i) { str = TalkStrings[i]; var duration = CalculateStringDuration(str.Text); if (passed < duration) { break; } passed -= duration; } if (i >= TalkStrings.Length) { return; } str = TalkStrings[i]; if (str.PortraitId != null && str.Portrait == null) { str.Portrait = new TextureRegion(worker.Context.ResourceLoader.GetCharacterPortrait(str.PortraitId)); } int symbolsCount = str.Text.Length; if (passed < symbolsCount * SymbolDurationInMs) { symbolsCount = passed / SymbolDurationInMs; } str.Name = CharName; worker.Context.Scene.ShowTalk(str, symbolsCount); }
public override void End(ExecutionWorker worker) { base.End(worker); var character = worker.Context.GetCharacter(CharId); if (character == null) { return; } // Set target position var targetPosition = TargetPosition; character.Position = targetPosition; worker.Context.Scene.Camera.SetLookAt(targetPosition); // End the movement animation character.AnimationStep = 0; }
public override void Update(ExecutionWorker worker) { base.Update(worker); var character = worker.Context.GetCharacter(CharId); if (character == null) { return; } var targetPosition = TargetPosition; var part = worker.InstructionPassedPart; var newPosition = new Vector3(_initialPosition.X + (targetPosition.X - _initialPosition.X) * part, _initialPosition.Y + (targetPosition.Y - _initialPosition.Y) * part, _initialPosition.Z + (targetPosition.Z - _initialPosition.Z) * part); character.Position = newPosition; worker.Context.Scene.Camera.SetLookAt(newPosition); }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); worker.Context.Scene.Opacity = 0; }
public override void Update(ExecutionWorker worker) { base.Update(worker); worker.Context.Scene.Opacity = worker.InstructionPassedPart; }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); worker.Finished = true; }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); _initialPosition = worker.Context.Scene.Camera.Position; }
public override void Begin(ExecutionWorker worker) { base.Begin(worker); worker.Context.Scene.CloseMessageWindow(); }
public override void End(ExecutionWorker worker) { base.End(worker); worker.Context.Scene.Opacity = 1; }