/// <summary> /// Takes a <see cref="SpecialMove"/> and converts it to a <see cref="SaveData.SpecialMoveSaveData"/> format for serialization. /// </summary> /// <param name="move"> <see cref="SpecialMove"/> insatnce to serialize. </param> /// <returns> Serializable <see cref="SaveData.SpecialMoveSaveData"/> for saving.</returns> public SaveData.SpecialMoveSaveData SpecialMoveToSerializable(SpecialMove move) { SaveData.SpecialMoveSaveData moveToSave = new SaveData.SpecialMoveSaveData { typeOfSpecialMove = move.GetType().ToString(), text = move.Text, desc = move.Desc, magic = move.Magic, special = move.Special }; return(moveToSave); }
public bool DoSpecialMoveByType(Type NewMove, bool forceMove) { if (SpecialMove != null && NewMove == SpecialMove.GetType()) { // ignore redundant calls to the same move NLogger.Instance.WriteString(LogType.Debug, "[SM] ignoring redundant call."); return(false); } SpecialMoveBase NewMoveInstance = null; if (NewMove != null) { NewMoveInstance = Activator.CreateInstance(NewMove, new object[] { this }) as SpecialMoveBase; } return(DoSpecialMove(NewMoveInstance, forceMove)); }