public CharacterMovement AddMovement(CharacterMovement characterMovement, Movement movement = null) { MovableCharacter defaultCharacter = this.Repository.CharacterByName[HeroVirtualTabletop.AnimatedAbility.DefaultAbilities.CHARACTERNAME] as MovableCharacter; if (movement == null) { movement = GetNewMovement(); } CharacterMovement charMovement = new CharacterMovementImpl(movement); if (this != defaultCharacter || (this == defaultCharacter && characterMovement.Movement != null)) { defaultCharacter.Movements.InsertAction(charMovement); if (this == defaultCharacter) { characterMovement = charMovement; } else { characterMovement.Movement = movement; } } else { characterMovement.Movement = movement; } return(characterMovement); }
public override CharacterAction Clone() { var clonedCharacterMovemnt = new CharacterMovementImpl(); clonedCharacterMovemnt.Name = this.Name; clonedCharacterMovemnt.Movement = this.Movement?.Clone(); clonedCharacterMovemnt.Speed = this.Speed; clonedCharacterMovemnt.KeyboardShortcut = this.KeyboardShortcut; return(clonedCharacterMovemnt); }
public CharacterMovement AddMovement(Movement movement = null) { MovableCharacter defaultCharacter = this.Repository.CharacterByName[HeroVirtualTabletop.AnimatedAbility.DefaultAbilities.CHARACTERNAME] as MovableCharacter; if (movement == null) { movement = GetNewMovement(); } CharacterMovement characterMovement = new CharacterMovementImpl(movement); defaultCharacter.Movements.InsertAction(characterMovement); this.Movements.InsertAction(characterMovement); return(characterMovement); }
public void AddDefaultMovements() { MovableCharacter defaultCharacter = HeroVirtualTabletop.AnimatedAbility.DefaultAbilities.DefaultCharacter as MovableCharacter; if (defaultCharacter != null && this != defaultCharacter && defaultCharacter.Movements != null && defaultCharacter.Movements.Count() > 0) { foreach (CharacterMovement cm in defaultCharacter.Movements) { if (defaultMovementNames.Contains(cm.Name) && !this.Movements.Any(m => m.Name == cm.Name)) { CharacterMovement cmDefault = new CharacterMovementImpl(cm.Movement); cmDefault.Name = cm.Name; cmDefault.Owner = this; cmDefault.Speed = cm.Speed; this.Movements.InsertAction(cmDefault); } if (this.Movements.Any(m => m.Name == cm.Name && m.ActivationKey == Key.None)) { CharacterMovement characterMovement = this.Movements.First(m => m.Name == cm.Name); switch (characterMovement.Name) { case "Walk": characterMovement.ActivationKey = Key.K; break; case "Run": characterMovement.ActivationKey = Key.U; break; case "Swim": characterMovement.ActivationKey = Key.S; break; case "Fly": characterMovement.ActivationKey = Key.F; break; case "Jump": characterMovement.ActivationKey = Key.J; break; case "Steam Jump Jetpack": characterMovement.ActivationKey = Key.P; break; case "Beast": characterMovement.ActivationKey = Key.B; break; case "Ninja Jump": characterMovement.ActivationKey = Key.M; break; case "Ice Slide": characterMovement.ActivationKey = Key.I; break; } } } } }