-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWizard.cs
More file actions
50 lines (43 loc) · 976 Bytes
/
Wizard.cs
File metadata and controls
50 lines (43 loc) · 976 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Visitor
{
public class Wizard : Character
{
public int Mana { get; set; }
public Wizard()
{
Mana = 20;
}
public int CastSpell()
{
if (Mana - 4 > 0)
{
Mana = Mana - 4 > 0 ? Mana - 4 : 0;
return 15;
}
else
{
RecoverMana();
return 0;
}
}
public void RecoverMana()
{
Mana += 2;
}
public override void Accept(Visitor visitor)
{
visitor.Visit(this);
}
public override int Attack()
{
int damage = CastSpell();
Console.WriteLine("Wizard deal " + damage + " damage");
return damage;
}
}
}