44 lines
1.0 KiB
Dart
44 lines
1.0 KiB
Dart
|
import 'dart:async';
|
|||
|
|
|||
|
enum CharacterType {
|
|||
|
Survivor,
|
|||
|
Hunter,
|
|||
|
}
|
|||
|
|
|||
|
abstract class Character {
|
|||
|
String name;
|
|||
|
CharacterType type;
|
|||
|
int level;
|
|||
|
|
|||
|
Character({required this.name, required this.type, this.level = 1});
|
|||
|
|
|||
|
Character.empty() : name = '', type = CharacterType.Survivor, level = 1;
|
|||
|
|
|||
|
String getInfo() {
|
|||
|
return "Имя: $name, Тип: ${type.toString().split('.').last}, Уровень: $level";
|
|||
|
}
|
|||
|
|
|||
|
Future<void> levelUp() async {
|
|||
|
await Future.delayed(const Duration(seconds: 1));
|
|||
|
level++;
|
|||
|
print("$name поднял(а) уровень до $level.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
class Survivor extends Character {
|
|||
|
Survivor({required String name}) : super(name: name, type: CharacterType.Survivor);
|
|||
|
|
|||
|
void useAbility() {
|
|||
|
print("$name использовал(а) свою способность.");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
class Hunter extends Character {
|
|||
|
Hunter({required String name}) : super(name: name, type: CharacterType.Hunter);
|
|||
|
|
|||
|
void useAbility() {
|
|||
|
print("$name использовал(а) свою способность.");
|
|||
|
}
|
|||
|
}
|
|||
|
|