- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInvulnerabilityManager.java
More file actions
Latest commit
84 lines (75 loc) · 1.64 KB
/
Copy pathInvulnerabilityManager.java
File metadata and controls
84 lines (75 loc) · 1.64 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
importgreenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
* Write a description of class InvulnerabilityManager here.
*
* @author (your name)
* @version (a version number or a date)
*/
publicclassInvulnerabilityManager
{
privateActorsubject;
privatebooleanisInvulnerable;
privateintframesCount;
privateintframesCountMax;
privateintflashCount;
privateintflashCountMax;
publicInvulnerabilityManager(Actorsubject)
{
this.subject = subject;
isInvulnerable = false;
framesCount = 50;
framesCountMax = 100;
flashCount = 10;
flashCountMax = 10;
}
publicvoidsetInvulnerable()
{
isInvulnerable = true;
}
publicvoidsetVulnerable()
{
isInvulnerable = false;
}
publicbooleanisInvulnerable()
{
returnisInvulnerable;
}
privatevoidflashTimer()
{
if(flashCount > 0)
{
flashCount--;
}
else
{
flashCount = flashCountMax;
flash();
}
}
privatevoidflash()
{
GreenfootImageimg = subject.getImage();
if(img.getTransparency() == 255)
{
img.setTransparency(100);
}
else
{
img.setTransparency(255);
}
}
publicvoidmanageInvulnerability()
{
if(framesCount > 0 && isInvulnerable)
{
framesCount--;
flash();
}
else
{
framesCount = framesCountMax;
isInvulnerable = false;
subject.getImage().setTransparency(255);
}
}
}