forked from Mirrors/openclonk
changed need-power-indicator to the classic blinking symbol
power messages fade out a lot faster messages are also shown when a producer/consumer returns to giving/needing 0 powerrope
parent
2262e1a8a9
commit
3b093ac0de
|
@ -42,8 +42,8 @@ func FadeOut(int speed, step)
|
||||||
|
|
||||||
func FxFadeOutTimer(target, effect)
|
func FxFadeOutTimer(target, effect)
|
||||||
{
|
{
|
||||||
if(alpha < 5) return RemoveObject();
|
|
||||||
alpha -= effect.step;
|
alpha -= effect.step;
|
||||||
|
if(alpha < 5) return RemoveObject();
|
||||||
Update();
|
Update();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -60,7 +60,8 @@ func SetColor(int r2, g2, b2, a)
|
||||||
|
|
||||||
func Update()
|
func Update()
|
||||||
{
|
{
|
||||||
this->Message(Format("@<c %x>%s</c>", RGBa(r, g, b, alpha), msg));
|
// the lacking </c> is on purpose
|
||||||
|
this->Message(Format("@<c %x><c %x>%s</c>", RGBa(255, 255, 255, alpha), RGBa(r, g, b, alpha), msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
public func Initialize()
|
public func Initialize()
|
||||||
|
|
|
@ -74,6 +74,7 @@ func AddPowerLink(object p, int a, bool surpress_balance_check)
|
||||||
{
|
{
|
||||||
var n = {obj = p, amount = a};
|
var n = {obj = p, amount = a};
|
||||||
|
|
||||||
|
var before = 0;
|
||||||
var found = false;
|
var found = false;
|
||||||
var first_empty = -1;
|
var first_empty = -1;
|
||||||
var diff = 0;
|
var diff = 0;
|
||||||
|
@ -98,7 +99,11 @@ func AddPowerLink(object p, int a, bool surpress_balance_check)
|
||||||
diff = a - o.amount;
|
diff = a - o.amount;
|
||||||
power_balance += diff;
|
power_balance += diff;
|
||||||
|
|
||||||
if(a == 0) power_links[i] = nil;
|
if(a == 0)
|
||||||
|
{
|
||||||
|
before = power_links[i].amount;
|
||||||
|
power_links[i] = nil;
|
||||||
|
}
|
||||||
else power_links[i] = n;
|
else power_links[i] = n;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -118,17 +123,21 @@ func AddPowerLink(object p, int a, bool surpress_balance_check)
|
||||||
}
|
}
|
||||||
|
|
||||||
diff = n.amount;
|
diff = n.amount;
|
||||||
if(diff > 0)
|
if((diff > 0) || ((a == 0) && (before > 0)))
|
||||||
{
|
{
|
||||||
var t = CreateObject(FloatingMessage, n.obj->GetX() - GetX(), n.obj->GetY() - GetY(), NO_OWNER);
|
var t = CreateObject(FloatingMessage, n.obj->GetX() - GetX(), n.obj->GetY() - GetY(), NO_OWNER);
|
||||||
t->SetMessage(Format("<c 00ff00>+%d</c>{{Library_PowerConsumer}}", diff));
|
t->SetMessage(Format("+%d</c>{{Library_PowerConsumer}}", diff));
|
||||||
|
t->SetColor(0, 255, 0);
|
||||||
t->SetYDir(-10);
|
t->SetYDir(-10);
|
||||||
|
t->FadeOut(4, 8);
|
||||||
}
|
}
|
||||||
else if(diff < 0)
|
else if((diff < 0) || ((a == 0) && (before < 0)))
|
||||||
{
|
{
|
||||||
var t = CreateObject(FloatingMessage, n.obj->GetX() - GetX(), n.obj->GetY() - GetY(), NO_OWNER);
|
var t = CreateObject(FloatingMessage, n.obj->GetX() - GetX(), n.obj->GetY() - GetY(), NO_OWNER);
|
||||||
t->SetMessage(Format("<c ff0000>%d</c>{{Library_PowerConsumer}}", diff));
|
t->SetMessage(Format("%d</c>{{Library_PowerConsumer}}", diff));
|
||||||
|
t->SetColor(255, 0, 0);
|
||||||
t->SetYDir(-10);
|
t->SetYDir(-10);
|
||||||
|
t->FadeOut(4, 8);
|
||||||
}
|
}
|
||||||
if(n.amount < 0)
|
if(n.amount < 0)
|
||||||
n.obj->~OnEnoughPower(); // might be reverted soon, though
|
n.obj->~OnEnoughPower(); // might be reverted soon, though
|
||||||
|
|
|
@ -35,9 +35,7 @@ public func OnNotEnoughPower()
|
||||||
PowerConsumer_has_power = false;
|
PowerConsumer_has_power = false;
|
||||||
|
|
||||||
// show symbol
|
// show symbol
|
||||||
if(GetEffect("ShowPowerMessage", this))
|
this->AddStatusSymbol(Library_PowerConsumer);
|
||||||
FatalError("OnNotEnoughPower() called two times in a row!");
|
|
||||||
AddEffect("ShowPowerMessage", this, 1, 10, this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// called when consumer was sleeping but power is available again
|
// called when consumer was sleeping but power is available again
|
||||||
|
@ -46,17 +44,7 @@ public func OnEnoughPower()
|
||||||
PowerConsumer_has_power = true;
|
PowerConsumer_has_power = true;
|
||||||
|
|
||||||
// remove symbol
|
// remove symbol
|
||||||
if(GetEffect("ShowPowerMessage", this))
|
this->RemoveStatusSymbol(Library_PowerConsumer);
|
||||||
RemoveEffect("ShowPowerMessage", this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public func FxShowPowerMessageTimer(target, effect, time)
|
|
||||||
{
|
|
||||||
if(effect.Interval < 35*3)
|
|
||||||
effect.Interval = 35*3;
|
|
||||||
var t = CreateObject(FloatingMessage, 0, 0, NO_OWNER);
|
|
||||||
t->SetMessage("{{Library_PowerConsumer}}<c ff0000>?</c>");
|
|
||||||
t->SetYDir(-10);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Destruction()
|
func Destruction()
|
||||||
|
|
Loading…
Reference in New Issue