Compare commits
12 Commits
master
...
GiantKartI
Author | SHA1 | Date | |
---|---|---|---|
|
abbee26708 | ||
|
9c6352c867 | ||
|
ae1181540d | ||
|
df25f9b1fb | ||
|
639a173339 | ||
|
862113d2a9 | ||
|
1285f8c58c | ||
|
a9b49305db | ||
|
d9581d9f70 | ||
|
6a9a1a0e7a | ||
|
d3c4dd0b7c | ||
|
b48f31d4a0 |
@ -243,6 +243,16 @@
|
|||||||
<zipper duration="3.5" force="250.0" speed-gain="4.5" max-speed-increase="15"
|
<zipper duration="3.5" force="250.0" speed-gain="4.5" max-speed-increase="15"
|
||||||
fade-out-time="1.0" />
|
fade-out-time="1.0" />
|
||||||
|
|
||||||
|
<!-- Super
|
||||||
|
duration: Time super-size is active.
|
||||||
|
force: Additional engine force.
|
||||||
|
max-speed-increase: Additional speed allowed on top of the
|
||||||
|
kart-specific maximum kart speed.
|
||||||
|
fade-out-time: determines how long it takes for super-size's speed boost
|
||||||
|
to fade out (after 'time'). -->
|
||||||
|
<super duration="10" force="800.0" max-speed-increase="3"
|
||||||
|
fade-out-time="0.5" />
|
||||||
|
|
||||||
<!-- Swatter
|
<!-- Swatter
|
||||||
duration: How long can the swatter be active.
|
duration: How long can the swatter be active.
|
||||||
distance: How close a kart or an item must be before it can be hit.
|
distance: How close a kart or an item must be before it can be hit.
|
||||||
|
151
data/powerup.xml
151
data/powerup.xml
@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<powerup>
|
<powerup>
|
||||||
<item name="zipper" icon="zipper_collect.png" />
|
<item name="zipper" icon="zipper_collect.png" />
|
||||||
|
<item name="super" icon="super_size.png" />
|
||||||
<item name="bowling" icon="bowling-icon.png"
|
<item name="bowling" icon="bowling-icon.png"
|
||||||
model="bowling.spm" speed="4.0"
|
model="bowling.spm" speed="4.0"
|
||||||
min-height="0.2" max-height="1.0"
|
min-height="0.2" max-height="1.0"
|
||||||
@ -131,112 +132,112 @@
|
|||||||
<!-- The entry for '1' kart lists more than a single weight
|
<!-- The entry for '1' kart lists more than a single weight
|
||||||
because the others are used for interpolation when
|
because the others are used for interpolation when
|
||||||
there are two karts or more. -->
|
there are two karts or more. -->
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="140 0 300 100 225 75 160 0 0 0"
|
<weight single ="140 0 300 100 225 75 160 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 0 295 130 200 70 135 0 0 0"
|
<weight single ="150 0 295 130 200 70 135 0 0 0 0"
|
||||||
multi =" 0 0 20 0 0 0 0 0 0 0" />
|
multi =" 0 0 20 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 0 310 135 180 65 135 0 0 0"
|
<weight single ="150 0 310 135 180 65 135 0 0 0 0"
|
||||||
multi =" 0 0 25 0 0 0 0 0 0 0" />
|
multi =" 0 0 25 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="155 0 280 180 170 60 125 0 0 0"
|
<weight single ="155 0 280 180 170 60 125 0 0 0 0"
|
||||||
multi =" 0 0 30 0 0 0 0 0 0 0" />
|
multi =" 0 0 30 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="170 0 180 275 150 50 85 0 0 0"
|
<weight single ="170 0 180 275 150 50 85 0 0 0 0"
|
||||||
multi =" 0 0 90 0 0 0 0 0 0 0" />
|
multi =" 0 0 90 0 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
<weights num-karts="5">
|
<weights num-karts="5">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="130 80 260 75 230 60 165 0 0 0"
|
<weight single ="130 80 260 75 230 60 165 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 135 240 125 140 50 135 0 0 0"
|
<weight single ="150 135 240 125 140 50 135 0 0 0 0"
|
||||||
multi =" 0 0 25 0 0 0 0 0 0 0" />
|
multi =" 0 0 25 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 135 225 135 135 45 135 15 0 0"
|
<weight single ="150 135 225 135 135 45 135 15 0 0 0"
|
||||||
multi =" 0 0 25 0 0 0 0 0 0 0" />
|
multi =" 0 0 25 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="160 120 140 190 110 35 100 80 30 0"
|
<weight single ="160 120 140 190 110 35 100 80 0 30 0"
|
||||||
multi =" 0 0 35 0 0 0 0 0 0 0" />
|
multi =" 0 0 35 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="140 105 45 225 0 30 0 50 90 0"
|
<weight single ="110 100 45 205 0 30 0 50 120 90 0"
|
||||||
multi =" 40 0 80 175 20 0 0 0 0 0" />
|
multi =" 40 0 80 110 20 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
<weights num-karts="9">
|
<weights num-karts="9">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="120 60 290 50 270 40 170 0 0 0"
|
<weight single ="120 60 290 50 270 40 170 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="145 150 225 120 160 35 135 0 0 0"
|
<weight single ="145 150 225 120 160 35 135 0 0 0 0"
|
||||||
multi =" 0 0 30 0 0 0 0 0 0 0" />
|
multi =" 0 0 30 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 130 205 140 130 30 130 50 0 0"
|
<weight single ="150 130 205 140 130 30 130 50 0 0 0"
|
||||||
multi =" 0 0 35 0 0 0 0 0 0 0" />
|
multi =" 0 0 35 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="165 115 130 225 70 25 80 60 40 0"
|
<weight single ="165 115 130 225 70 25 80 60 0 40 0"
|
||||||
multi =" 0 0 60 0 30 0 0 0 0 0" />
|
multi =" 0 0 60 0 30 0 0 0 0 0 0" />
|
||||||
<weight single ="100 80 35 185 0 15 0 20 75 0"
|
<weight single =" 85 75 30 195 0 15 0 20 170 75 0"
|
||||||
multi =" 90 0 90 290 20 0 0 0 0 0" />
|
multi =" 75 0 75 165 20 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
<weights num-karts="14">
|
<weights num-karts="14">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="110 40 320 25 300 30 175 0 0 0"
|
<weight single ="110 40 320 25 300 30 175 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="140 155 240 110 170 20 135 0 0 0"
|
<weight single ="140 155 240 110 170 20 135 0 0 0 0"
|
||||||
multi =" 0 0 30 0 0 0 0 0 0 0" />
|
multi =" 0 0 30 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 125 210 145 145 15 120 50 0 0"
|
<weight single ="150 125 210 145 145 15 120 50 0 0 0"
|
||||||
multi =" 0 0 40 0 0 0 0 0 0 0" />
|
multi =" 0 0 40 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="135 105 115 220 60 15 70 40 30 0"
|
<weight single ="135 105 115 220 60 15 70 40 0 30 0"
|
||||||
multi =" 40 0 80 40 50 0 0 0 0 0" />
|
multi =" 40 0 80 40 50 0 0 0 0 0 0" />
|
||||||
<weight single =" 90 70 15 175 0 0 0 0 50 0"
|
<weight single =" 65 60 10 160 0 0 0 0 230 50 0"
|
||||||
multi ="120 0 125 325 30 0 0 0 0 0" />
|
multi ="110 0 80 215 20 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
<weights num-karts="20">
|
<weights num-karts="20">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="100 0 370 0 330 20 180 0 0 0"
|
<weight single ="100 0 370 0 330 20 180 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="135 160 240 100 185 15 135 0 0 0"
|
<weight single ="135 160 240 100 185 15 135 0 0 0 0"
|
||||||
multi =" 0 0 30 0 0 0 0 0 0 0" />
|
multi =" 0 0 30 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="150 120 200 150 140 10 105 50 0 0"
|
<weight single ="150 120 200 150 140 10 105 50 0 0 0"
|
||||||
multi =" 0 0 50 0 25 0 0 0 0 0" />
|
multi =" 0 0 50 0 25 0 0 0 0 0 0" />
|
||||||
<weight single ="125 90 100 250 50 10 50 30 15 0"
|
<weight single ="125 90 100 250 50 10 50 30 0 15 0"
|
||||||
multi =" 50 0 100 50 80 0 0 0 0 0" />
|
multi =" 50 0 100 50 80 0 0 0 0 0 0" />
|
||||||
<weight single =" 75 60 0 125 0 0 0 0 35 0"
|
<weight single =" 40 45 0 110 0 0 0 0 300 35 0"
|
||||||
multi ="150 0 155 400 0 0 0 0 0 0" />
|
multi ="140 0 80 250 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
</race-weight-list>
|
</race-weight-list>
|
||||||
|
|
||||||
<ftl-weight-list>
|
<ftl-weight-list>
|
||||||
<weights num-karts="1">
|
<weights num-karts="1">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<!-- This is the entry for the leader: -->
|
<!-- This is the entry for the leader: -->
|
||||||
<weight single ="35 0 25 35 25 15 25 0 0 0"
|
<weight single ="35 0 25 35 25 15 25 0 0 0 0"
|
||||||
multi ="20 0 0 20 0 0 0 0 0 0" />
|
multi ="20 0 0 20 0 0 0 0 0 0 0" />
|
||||||
<!-- This is the entry for the first non-leader karts: -->
|
<!-- This is the entry for the first non-leader karts: -->
|
||||||
<weight single ="25 0 60 25 58 2 30 0 0 0"
|
<weight single ="25 0 60 25 58 2 30 0 0 0 0"
|
||||||
multi =" 0 0 0 0 0 0 0 0 0 0" />
|
multi =" 0 0 0 0 0 0 0 0 0 0 0" />
|
||||||
<weight single ="35 0 55 35 25 3 25 0 0 0"
|
<weight single ="35 0 55 35 25 3 25 0 0 0 0"
|
||||||
multi =" 0 0 10 0 12 0 0 0 0 0" />
|
multi =" 0 0 10 0 12 0 0 0 0 0 0" />
|
||||||
<weight single ="25 0 40 45 15 5 15 10 5 0"
|
<weight single ="25 0 40 45 15 5 15 10 0 5 0"
|
||||||
multi ="10 0 15 15 0 0 0 0 0 0" />
|
multi ="10 0 15 15 0 0 0 0 0 0 0" />
|
||||||
<!-- This is the entry for the last kart: -->
|
<!-- This is the entry for the last kart: -->
|
||||||
<weight single ="20 0 15 25 0 0 0 0 15 0"
|
<weight single ="20 0 15 25 0 0 0 0 0 15 0"
|
||||||
multi ="20 0 25 80 0 0 0 0 0 0" />
|
multi ="20 0 25 80 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
</ftl-weight-list>
|
</ftl-weight-list>
|
||||||
|
|
||||||
<battle-weight-list>
|
<battle-weight-list>
|
||||||
<weights num-karts="1">
|
<weights num-karts="1">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single ="10 30 60 0 0 10 30 0 0 0"
|
<weight single ="10 30 60 0 0 10 30 0 0 0 0"
|
||||||
multi =" 0 0 5 0 0 0 0 0 0 0" />
|
multi =" 0 0 5 0 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
</battle-weight-list>
|
</battle-weight-list>
|
||||||
|
|
||||||
<soccer-weight-list>
|
<soccer-weight-list>
|
||||||
<weights num-karts="1">
|
<weights num-karts="1">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single =" 0 30 60 0 0 10 30 0 0 0"
|
<weight single =" 0 30 60 0 0 10 30 0 0 0 0"
|
||||||
multi =" 0 0 5 0 0 0 0 0 0 0" />
|
multi =" 0 0 5 0 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
</soccer-weight-list>
|
</soccer-weight-list>
|
||||||
|
|
||||||
<tutorial-weight-list>
|
<tutorial-weight-list>
|
||||||
<weights num-karts="1">
|
<weights num-karts="1">
|
||||||
<!-- bubble cake bowl zipper plunger switch swattr rubber para anvil -->
|
<!-- bubble cake bowl zipper plunger switch swattr rubber super para anvil -->
|
||||||
<weight single =" 0 0 0 0 0 0 0 0 0 0"
|
<weight single =" 0 0 0 0 0 0 0 0 0 0 0"
|
||||||
multi =" 0 0 100 0 0 0 0 0 0 0" />
|
multi =" 0 0 100 0 0 0 0 0 0 0 0" />
|
||||||
</weights>
|
</weights>
|
||||||
</tutorial-weight-list>
|
</tutorial-weight-list>
|
||||||
|
|
||||||
|
@ -198,6 +198,12 @@ bool Bowling::hit(AbstractKart* kart, PhysicalObject* obj)
|
|||||||
kart->decreaseShieldTime();
|
kart->decreaseShieldTime();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
// Super-Sized karts are immune to bowling balls
|
||||||
|
// (But if they have a gum shield, they lose it)
|
||||||
|
else if (kart && kart->isSuperSized())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_has_hit_kart = kart != NULL;
|
m_has_hit_kart = kart != NULL;
|
||||||
|
@ -170,6 +170,9 @@ void Powerup::set(PowerupManager::PowerupType type, int n)
|
|||||||
case PowerupManager::POWERUP_ZIPPER:
|
case PowerupManager::POWERUP_ZIPPER:
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
|
case PowerupManager::POWERUP_SUPER_SIZE:
|
||||||
|
break ;
|
||||||
|
|
||||||
case PowerupManager::POWERUP_BOWLING:
|
case PowerupManager::POWERUP_BOWLING:
|
||||||
m_sound_use = SFXManager::get()->createSoundSource("bowling_shoot");
|
m_sound_use = SFXManager::get()->createSoundSource("bowling_shoot");
|
||||||
break ;
|
break ;
|
||||||
@ -276,6 +279,9 @@ void Powerup::use()
|
|||||||
case PowerupManager::POWERUP_ZIPPER:
|
case PowerupManager::POWERUP_ZIPPER:
|
||||||
m_kart->handleZipper(NULL, true);
|
m_kart->handleZipper(NULL, true);
|
||||||
break ;
|
break ;
|
||||||
|
case PowerupManager::POWERUP_SUPER_SIZE:
|
||||||
|
m_kart->setSuper();
|
||||||
|
break ;
|
||||||
case PowerupManager::POWERUP_SWITCH:
|
case PowerupManager::POWERUP_SWITCH:
|
||||||
{
|
{
|
||||||
ItemManager::get()->switchItems();
|
ItemManager::get()->switchItems();
|
||||||
|
@ -105,7 +105,7 @@ PowerupManager::PowerupType
|
|||||||
static std::string powerup_names[] = {
|
static std::string powerup_names[] = {
|
||||||
"", /* Nothing */
|
"", /* Nothing */
|
||||||
"bubblegum", "cake", "bowling", "zipper", "plunger", "switch",
|
"bubblegum", "cake", "bowling", "zipper", "plunger", "switch",
|
||||||
"swatter", "rubber-ball", "parachute", "anchor"
|
"swatter", "rubber-ball", "super", "parachute", "anchor"
|
||||||
};
|
};
|
||||||
|
|
||||||
for(unsigned int i=POWERUP_FIRST; i<=POWERUP_LAST; i++)
|
for(unsigned int i=POWERUP_FIRST; i<=POWERUP_LAST; i++)
|
||||||
|
@ -132,6 +132,7 @@ public:
|
|||||||
POWERUP_CAKE,
|
POWERUP_CAKE,
|
||||||
POWERUP_BOWLING, POWERUP_ZIPPER, POWERUP_PLUNGER,
|
POWERUP_BOWLING, POWERUP_ZIPPER, POWERUP_PLUNGER,
|
||||||
POWERUP_SWITCH, POWERUP_SWATTER, POWERUP_RUBBERBALL,
|
POWERUP_SWITCH, POWERUP_SWATTER, POWERUP_RUBBERBALL,
|
||||||
|
POWERUP_SUPER_SIZE,
|
||||||
POWERUP_PARACHUTE,
|
POWERUP_PARACHUTE,
|
||||||
POWERUP_ANVIL, //powerup.cpp assumes these two come last
|
POWERUP_ANVIL, //powerup.cpp assumes these two come last
|
||||||
POWERUP_LAST=POWERUP_ANVIL,
|
POWERUP_LAST=POWERUP_ANVIL,
|
||||||
|
@ -161,6 +161,14 @@ AbstractCharacteristic::ValueType AbstractCharacteristic::getType(
|
|||||||
return TYPE_FLOAT;
|
return TYPE_FLOAT;
|
||||||
case ZIPPER_FADE_OUT_TIME:
|
case ZIPPER_FADE_OUT_TIME:
|
||||||
return TYPE_FLOAT;
|
return TYPE_FLOAT;
|
||||||
|
case SUPER_DURATION:
|
||||||
|
return TYPE_FLOAT;
|
||||||
|
case SUPER_FORCE:
|
||||||
|
return TYPE_FLOAT;
|
||||||
|
case SUPER_MAX_SPEED_INCREASE:
|
||||||
|
return TYPE_FLOAT;
|
||||||
|
case SUPER_FADE_OUT_TIME:
|
||||||
|
return TYPE_FLOAT;
|
||||||
case SWATTER_DURATION:
|
case SWATTER_DURATION:
|
||||||
return TYPE_FLOAT;
|
return TYPE_FLOAT;
|
||||||
case SWATTER_DISTANCE:
|
case SWATTER_DISTANCE:
|
||||||
@ -397,6 +405,14 @@ std::string AbstractCharacteristic::getName(CharacteristicType type)
|
|||||||
return "ZIPPER_MAX_SPEED_INCREASE";
|
return "ZIPPER_MAX_SPEED_INCREASE";
|
||||||
case ZIPPER_FADE_OUT_TIME:
|
case ZIPPER_FADE_OUT_TIME:
|
||||||
return "ZIPPER_FADE_OUT_TIME";
|
return "ZIPPER_FADE_OUT_TIME";
|
||||||
|
case SUPER_DURATION:
|
||||||
|
return "SUPER_DURATION";
|
||||||
|
case SUPER_FORCE:
|
||||||
|
return "SUPER_FORCE";
|
||||||
|
case SUPER_MAX_SPEED_INCREASE:
|
||||||
|
return "SUPER_MAX_SPEED_INCREASE";
|
||||||
|
case SUPER_FADE_OUT_TIME:
|
||||||
|
return "SUPER_FADE_OUT_TIME";
|
||||||
case SWATTER_DURATION:
|
case SWATTER_DURATION:
|
||||||
return "SWATTER_DURATION";
|
return "SWATTER_DURATION";
|
||||||
case SWATTER_DISTANCE:
|
case SWATTER_DISTANCE:
|
||||||
@ -1155,6 +1171,54 @@ float AbstractCharacteristic::getZipperFadeOutTime() const
|
|||||||
return result;
|
return result;
|
||||||
} // getZipperFadeOutTime
|
} // getZipperFadeOutTime
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float AbstractCharacteristic::getSuperDuration() const
|
||||||
|
{
|
||||||
|
float result;
|
||||||
|
bool is_set = false;
|
||||||
|
process(SUPER_DURATION, &result, &is_set);
|
||||||
|
if (!is_set)
|
||||||
|
Log::fatal("AbstractCharacteristic", "Can't get characteristic %s",
|
||||||
|
getName(SUPER_DURATION).c_str());
|
||||||
|
return result;
|
||||||
|
} // getSuperDuration
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float AbstractCharacteristic::getSuperForce() const
|
||||||
|
{
|
||||||
|
float result;
|
||||||
|
bool is_set = false;
|
||||||
|
process(SUPER_FORCE, &result, &is_set);
|
||||||
|
if (!is_set)
|
||||||
|
Log::fatal("AbstractCharacteristic", "Can't get characteristic %s",
|
||||||
|
getName(SUPER_FORCE).c_str());
|
||||||
|
return result;
|
||||||
|
} // getSuperForce
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float AbstractCharacteristic::getSuperMaxSpeedIncrease() const
|
||||||
|
{
|
||||||
|
float result;
|
||||||
|
bool is_set = false;
|
||||||
|
process(SUPER_MAX_SPEED_INCREASE, &result, &is_set);
|
||||||
|
if (!is_set)
|
||||||
|
Log::fatal("AbstractCharacteristic", "Can't get characteristic %s",
|
||||||
|
getName(SUPER_MAX_SPEED_INCREASE).c_str());
|
||||||
|
return result;
|
||||||
|
} // getSuperMaxSpeedIncrease
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float AbstractCharacteristic::getSuperFadeOutTime() const
|
||||||
|
{
|
||||||
|
float result;
|
||||||
|
bool is_set = false;
|
||||||
|
process(SUPER_FADE_OUT_TIME, &result, &is_set);
|
||||||
|
if (!is_set)
|
||||||
|
Log::fatal("AbstractCharacteristic", "Can't get characteristic %s",
|
||||||
|
getName(SUPER_FADE_OUT_TIME).c_str());
|
||||||
|
return result;
|
||||||
|
} // getSuperFadeOutTime
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
float AbstractCharacteristic::getSwatterDuration() const
|
float AbstractCharacteristic::getSwatterDuration() const
|
||||||
{
|
{
|
||||||
|
@ -154,6 +154,12 @@ public:
|
|||||||
ZIPPER_MAX_SPEED_INCREASE,
|
ZIPPER_MAX_SPEED_INCREASE,
|
||||||
ZIPPER_FADE_OUT_TIME,
|
ZIPPER_FADE_OUT_TIME,
|
||||||
|
|
||||||
|
// Super size
|
||||||
|
SUPER_DURATION,
|
||||||
|
SUPER_FORCE,
|
||||||
|
SUPER_MAX_SPEED_INCREASE,
|
||||||
|
SUPER_FADE_OUT_TIME,
|
||||||
|
|
||||||
// Swatter
|
// Swatter
|
||||||
SWATTER_DURATION,
|
SWATTER_DURATION,
|
||||||
SWATTER_DISTANCE,
|
SWATTER_DISTANCE,
|
||||||
@ -329,6 +335,11 @@ public:
|
|||||||
float getZipperMaxSpeedIncrease() const;
|
float getZipperMaxSpeedIncrease() const;
|
||||||
float getZipperFadeOutTime() const;
|
float getZipperFadeOutTime() const;
|
||||||
|
|
||||||
|
float getSuperDuration() const;
|
||||||
|
float getSuperForce() const;
|
||||||
|
float getSuperMaxSpeedIncrease() const;
|
||||||
|
float getSuperFadeOutTime() const;
|
||||||
|
|
||||||
float getSwatterDuration() const;
|
float getSwatterDuration() const;
|
||||||
float getSwatterDistance() const;
|
float getSwatterDistance() const;
|
||||||
float getSwatterSquashDuration() const;
|
float getSwatterSquashDuration() const;
|
||||||
|
@ -268,6 +268,9 @@ public:
|
|||||||
/** Returns if the kart is currently being squashed. */
|
/** Returns if the kart is currently being squashed. */
|
||||||
virtual bool isSquashed() const = 0;
|
virtual bool isSquashed() const = 0;
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
/** Returns if the kart is currently being super-sized. */
|
||||||
|
virtual bool isSuperSized() const = 0;
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
/** Squashes this kart: it will scale the kart in up direction, and causes
|
/** Squashes this kart: it will scale the kart in up direction, and causes
|
||||||
* a slowdown while this kart is squashed.
|
* a slowdown while this kart is squashed.
|
||||||
* \param time How long the kart will be squashed.
|
* \param time How long the kart will be squashed.
|
||||||
@ -277,6 +280,17 @@ public:
|
|||||||
/** Makes the kart unsquashed again. */
|
/** Makes the kart unsquashed again. */
|
||||||
virtual void unsetSquash() = 0;
|
virtual void unsetSquash() = 0;
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
/** This activates super mode for kart ; upscaling it and giving it
|
||||||
|
* other perks. */
|
||||||
|
virtual void setSuper() = 0;
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
/** This disables super mode
|
||||||
|
* \param instant Is this a normal end or a reset */
|
||||||
|
virtual void unsetSuper(bool instant) = 0;
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
|
/** Updates the kart's current scaling */
|
||||||
|
virtual void updateScale(int ticks) = 0;
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
/** Returns the speed of the kart in meters/second. This is not declared
|
/** Returns the speed of the kart in meters/second. This is not declared
|
||||||
* pure abstract, since this function is not needed for certain classes,
|
* pure abstract, since this function is not needed for certain classes,
|
||||||
* like Ghost. */
|
* like Ghost. */
|
||||||
|
@ -1241,6 +1241,12 @@ void SkiddingAI::handleItems(const float dt, const Vec3 *aim_point, int last_nod
|
|||||||
m_controls->setFire(true);
|
m_controls->setFire(true);
|
||||||
break; // POWERUP_PARACHUTE
|
break; // POWERUP_PARACHUTE
|
||||||
|
|
||||||
|
case PowerupManager::POWERUP_SUPER_SIZE:
|
||||||
|
// FIXME : this is a temporary AI to avoid crashes
|
||||||
|
if(m_time_since_last_shot > 1.0f)
|
||||||
|
m_controls->setFire(true);
|
||||||
|
break; // POWERUP_SUPER_SIZE
|
||||||
|
|
||||||
case PowerupManager::POWERUP_SWATTER:
|
case PowerupManager::POWERUP_SWATTER:
|
||||||
{
|
{
|
||||||
// if the kart has a shield, do not break it by using a swatter.
|
// if the kart has a shield, do not break it by using a swatter.
|
||||||
|
@ -348,6 +348,7 @@ void Kart::reset()
|
|||||||
m_collision_particles->setCreationRateAbsolute(0.0f);
|
m_collision_particles->setCreationRateAbsolute(0.0f);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
unsetSuper(true /*instant*/);
|
||||||
unsetSquash();
|
unsetSquash();
|
||||||
|
|
||||||
m_last_used_powerup = PowerupManager::POWERUP_NOTHING;
|
m_last_used_powerup = PowerupManager::POWERUP_NOTHING;
|
||||||
@ -360,7 +361,9 @@ void Kart::reset()
|
|||||||
m_invulnerable_ticks = 0;
|
m_invulnerable_ticks = 0;
|
||||||
m_min_nitro_ticks = 0;
|
m_min_nitro_ticks = 0;
|
||||||
m_energy_to_min_ratio = 0;
|
m_energy_to_min_ratio = 0;
|
||||||
|
m_scale_change_ticks = 0;
|
||||||
m_squash_time = std::numeric_limits<float>::max();
|
m_squash_time = std::numeric_limits<float>::max();
|
||||||
|
m_super_time = std::numeric_limits<float>::max();
|
||||||
m_collected_energy = 0;
|
m_collected_energy = 0;
|
||||||
m_bounce_back_ticks = 0;
|
m_bounce_back_ticks = 0;
|
||||||
m_brake_ticks = 0;
|
m_brake_ticks = 0;
|
||||||
@ -1792,6 +1795,14 @@ void Kart::setSquash(float time, float slowdown)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isSuperSized())
|
||||||
|
{
|
||||||
|
unsetSuper(true /*instant*/);
|
||||||
|
setInvulnerableTicks(stk_config->time2Ticks(2.5f));
|
||||||
|
showStarEffect(2.5f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
m_max_speed->setSlowdown(MaxSpeed::MS_DECREASE_SQUASH, slowdown,
|
m_max_speed->setSlowdown(MaxSpeed::MS_DECREASE_SQUASH, slowdown,
|
||||||
stk_config->time2Ticks(0.1f),
|
stk_config->time2Ticks(0.1f),
|
||||||
stk_config->time2Ticks(time));
|
stk_config->time2Ticks(time));
|
||||||
@ -1846,6 +1857,86 @@ void Kart::unsetSquash()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/** This activates super mode for kart ; upscaling it and giving it
|
||||||
|
* other perks. */
|
||||||
|
void Kart::setSuper()
|
||||||
|
{
|
||||||
|
if (isSquashed())
|
||||||
|
unsetSquash();
|
||||||
|
|
||||||
|
float max_speed_increase = m_kart_properties->getSuperMaxSpeedIncrease();
|
||||||
|
float duration = m_kart_properties->getSuperDuration();
|
||||||
|
float fade_out_time = m_kart_properties->getSuperFadeOutTime();
|
||||||
|
float engine_force = m_kart_properties->getSuperForce();
|
||||||
|
|
||||||
|
m_max_speed->increaseMaxSpeed(MaxSpeed::MS_INCREASE_SUPER,
|
||||||
|
max_speed_increase,
|
||||||
|
engine_force,
|
||||||
|
stk_config->time2Ticks(duration),
|
||||||
|
stk_config->time2Ticks(fade_out_time));
|
||||||
|
// Kart small or downscaling and not currently upscaling
|
||||||
|
if (m_scale_change_ticks <= 0 && m_super_time == std::numeric_limits<float>::max())
|
||||||
|
m_scale_change_ticks = stk_config->time2Ticks(SUPER_TRANSITION_TIME) +
|
||||||
|
m_scale_change_ticks;
|
||||||
|
|
||||||
|
m_super_time = duration;
|
||||||
|
} // setSuper
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/** Update the scale according to m_scale_change_ticks
|
||||||
|
*/
|
||||||
|
void Kart::updateScale(int ticks)
|
||||||
|
{
|
||||||
|
//TODO update physics model too
|
||||||
|
if (m_scale_change_ticks == 0) return;
|
||||||
|
|
||||||
|
float scale_by_tick = 0.5/(float)stk_config->time2Ticks(SUPER_TRANSITION_TIME);
|
||||||
|
float scale_factor;
|
||||||
|
if (m_scale_change_ticks > 0)
|
||||||
|
{
|
||||||
|
m_scale_change_ticks -= ticks;
|
||||||
|
if (m_scale_change_ticks < 0) m_scale_change_ticks = 0;
|
||||||
|
scale_factor = 1.5 - (m_scale_change_ticks*scale_by_tick);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_scale_change_ticks += ticks;
|
||||||
|
if (m_scale_change_ticks > 0) m_scale_change_ticks = 0;
|
||||||
|
scale_factor = 1.0 - (m_scale_change_ticks*scale_by_tick);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SERVER_ONLY
|
||||||
|
m_node->setScale(core::vector3df(scale_factor,scale_factor,scale_factor));
|
||||||
|
#endif
|
||||||
|
} // setSuper
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/** This disables super mode
|
||||||
|
* \param instant Is this a normal end or a reset */
|
||||||
|
void Kart::unsetSuper(bool instant)
|
||||||
|
{
|
||||||
|
//TODO update physics model too
|
||||||
|
m_super_time = std::numeric_limits<float>::max();
|
||||||
|
if (instant)
|
||||||
|
{
|
||||||
|
#ifndef SERVER_ONLY
|
||||||
|
m_node->setScale(core::vector3df(1.0f,1.0f,1.0f));
|
||||||
|
#endif
|
||||||
|
m_scale_change_ticks = 0;
|
||||||
|
// This resets the speed boost
|
||||||
|
m_max_speed->increaseMaxSpeed(MaxSpeed::MS_INCREASE_SUPER,
|
||||||
|
0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Will scale back to normal over time
|
||||||
|
m_scale_change_ticks = -40;
|
||||||
|
// The speed boost will end by itself
|
||||||
|
}
|
||||||
|
} // unsetSuper
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/** Returns if the kart is currently being squashed
|
/** Returns if the kart is currently being squashed
|
||||||
*/
|
*/
|
||||||
@ -1855,6 +1946,16 @@ bool Kart::isSquashed() const
|
|||||||
m_max_speed->isSpeedDecreaseActive(MaxSpeed::MS_DECREASE_SQUASH) == 1;
|
m_max_speed->isSpeedDecreaseActive(MaxSpeed::MS_DECREASE_SQUASH) == 1;
|
||||||
} // setSquash
|
} // setSquash
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
/** Returns if the kart is currently super-sized
|
||||||
|
*/
|
||||||
|
bool Kart::isSuperSized() const
|
||||||
|
{
|
||||||
|
return
|
||||||
|
m_max_speed->getSpeedIncreaseTicksLeft(MaxSpeed::MS_INCREASE_SUPER) > 0;
|
||||||
|
} // setSquash
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
/** Plays any terrain specific sound effect.
|
/** Plays any terrain specific sound effect.
|
||||||
*/
|
*/
|
||||||
@ -2506,6 +2607,18 @@ bool Kart::playCustomSFX(unsigned int type)
|
|||||||
*/
|
*/
|
||||||
void Kart::updatePhysics(int ticks)
|
void Kart::updatePhysics(int ticks)
|
||||||
{
|
{
|
||||||
|
if (m_super_time != std::numeric_limits<float>::max())
|
||||||
|
{
|
||||||
|
m_super_time -= stk_config->ticks2Time(ticks);
|
||||||
|
// If super time ends, reset the model
|
||||||
|
if (m_super_time <= 0.0f)
|
||||||
|
{
|
||||||
|
unsetSuper(false /*instant*/);
|
||||||
|
}
|
||||||
|
} // if super
|
||||||
|
|
||||||
|
updateScale(ticks);
|
||||||
|
|
||||||
if (m_controls.getAccel() > 0.0f &&
|
if (m_controls.getAccel() > 0.0f &&
|
||||||
World::getWorld()->getTicksSinceStart() == 1)
|
World::getWorld()->getTicksSinceStart() == 1)
|
||||||
{
|
{
|
||||||
|
@ -253,6 +253,12 @@ protected:
|
|||||||
int m_ticks_last_crash;
|
int m_ticks_last_crash;
|
||||||
RaceManager::KartType m_type;
|
RaceManager::KartType m_type;
|
||||||
|
|
||||||
|
// Used to know where we are when upscaling/downscaling the kart
|
||||||
|
// Set to positive to upscale, to negative to downscale
|
||||||
|
int8_t m_scale_change_ticks;
|
||||||
|
float m_super_time;
|
||||||
|
const float SUPER_TRANSITION_TIME = 0.5;//TODO : move to config
|
||||||
|
|
||||||
/** To prevent using nitro in too short bursts */
|
/** To prevent using nitro in too short bursts */
|
||||||
int8_t m_min_nitro_ticks;
|
int8_t m_min_nitro_ticks;
|
||||||
|
|
||||||
@ -315,6 +321,10 @@ public:
|
|||||||
virtual void setSquash (float time, float slowdown) OVERRIDE;
|
virtual void setSquash (float time, float slowdown) OVERRIDE;
|
||||||
virtual void unsetSquash () OVERRIDE;
|
virtual void unsetSquash () OVERRIDE;
|
||||||
|
|
||||||
|
virtual void setSuper () OVERRIDE;
|
||||||
|
virtual void unsetSuper (bool instant) OVERRIDE;
|
||||||
|
virtual void updateScale (int ticks) OVERRIDE;
|
||||||
|
|
||||||
virtual void crashed (AbstractKart *k, bool update_attachments) OVERRIDE;
|
virtual void crashed (AbstractKart *k, bool update_attachments) OVERRIDE;
|
||||||
virtual void crashed (const Material *m, const Vec3 &normal) OVERRIDE;
|
virtual void crashed (const Material *m, const Vec3 &normal) OVERRIDE;
|
||||||
virtual float getHoT () const OVERRIDE;
|
virtual float getHoT () const OVERRIDE;
|
||||||
@ -508,6 +518,9 @@ public:
|
|||||||
/** Returns if the kart is currently being squashed. */
|
/** Returns if the kart is currently being squashed. */
|
||||||
virtual bool isSquashed() const OVERRIDE;
|
virtual bool isSquashed() const OVERRIDE;
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
/** Returns if the kart is currently super sized. */
|
||||||
|
virtual bool isSuperSized() const OVERRIDE;
|
||||||
|
// ------------------------------------------------------------------------
|
||||||
/** Shows the star effect for a certain time. */
|
/** Shows the star effect for a certain time. */
|
||||||
virtual void showStarEffect(float t) OVERRIDE;
|
virtual void showStarEffect(float t) OVERRIDE;
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
@ -901,6 +901,30 @@ float KartProperties::getZipperFadeOutTime() const
|
|||||||
return m_cached_characteristic->getZipperFadeOutTime();
|
return m_cached_characteristic->getZipperFadeOutTime();
|
||||||
} // getZipperFadeOutTime
|
} // getZipperFadeOutTime
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float KartProperties::getSuperDuration() const
|
||||||
|
{
|
||||||
|
return m_cached_characteristic->getSuperDuration();
|
||||||
|
} // getSuperDuration
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float KartProperties::getSuperForce() const
|
||||||
|
{
|
||||||
|
return m_cached_characteristic->getSuperForce();
|
||||||
|
} // getSuperForce
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float KartProperties::getSuperMaxSpeedIncrease() const
|
||||||
|
{
|
||||||
|
return m_cached_characteristic->getSuperMaxSpeedIncrease();
|
||||||
|
} // getSuperMaxSpeedIncrease
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
float KartProperties::getSuperFadeOutTime() const
|
||||||
|
{
|
||||||
|
return m_cached_characteristic->getSuperFadeOutTime();
|
||||||
|
} // getSuperFadeOutTime
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
float KartProperties::getSwatterDuration() const
|
float KartProperties::getSwatterDuration() const
|
||||||
{
|
{
|
||||||
|
@ -444,6 +444,11 @@ public:
|
|||||||
float getZipperMaxSpeedIncrease() const;
|
float getZipperMaxSpeedIncrease() const;
|
||||||
float getZipperFadeOutTime() const;
|
float getZipperFadeOutTime() const;
|
||||||
|
|
||||||
|
float getSuperDuration() const;
|
||||||
|
float getSuperForce() const;
|
||||||
|
float getSuperMaxSpeedIncrease() const;
|
||||||
|
float getSuperFadeOutTime() const;
|
||||||
|
|
||||||
float getSwatterDuration() const;
|
float getSwatterDuration() const;
|
||||||
float getSwatterDistance() const;
|
float getSwatterDistance() const;
|
||||||
float getSwatterSquashDuration() const;
|
float getSwatterSquashDuration() const;
|
||||||
|
@ -30,7 +30,7 @@ friend class KartRewinder;
|
|||||||
public:
|
public:
|
||||||
/** The categories to use for increasing the speed of a kart:
|
/** The categories to use for increasing the speed of a kart:
|
||||||
* Increase due to zipper, slipstream, nitro, rubber band,
|
* Increase due to zipper, slipstream, nitro, rubber band,
|
||||||
* skidding usage. */
|
* skidding usage, or super bonus (big kart). */
|
||||||
enum {MS_INCREASE_MIN,
|
enum {MS_INCREASE_MIN,
|
||||||
MS_INCREASE_ZIPPER = MS_INCREASE_MIN,
|
MS_INCREASE_ZIPPER = MS_INCREASE_MIN,
|
||||||
MS_INCREASE_SLIPSTREAM,
|
MS_INCREASE_SLIPSTREAM,
|
||||||
@ -38,6 +38,7 @@ public:
|
|||||||
MS_INCREASE_RUBBER,
|
MS_INCREASE_RUBBER,
|
||||||
MS_INCREASE_SKIDDING,
|
MS_INCREASE_SKIDDING,
|
||||||
MS_INCREASE_RED_SKIDDING,
|
MS_INCREASE_RED_SKIDDING,
|
||||||
|
MS_INCREASE_SUPER,
|
||||||
MS_INCREASE_MAX};
|
MS_INCREASE_MAX};
|
||||||
|
|
||||||
/** The categories to use for decreasing the speed of a kart:
|
/** The categories to use for decreasing the speed of a kart:
|
||||||
|
@ -483,6 +483,18 @@ void XmlCharacteristic::load(const XMLNode *node)
|
|||||||
&m_values[ZIPPER_FADE_OUT_TIME]);
|
&m_values[ZIPPER_FADE_OUT_TIME]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (const XMLNode *sub_node = node->getNode("super"))
|
||||||
|
{
|
||||||
|
sub_node->get("duration",
|
||||||
|
&m_values[SUPER_DURATION]);
|
||||||
|
sub_node->get("force",
|
||||||
|
&m_values[SUPER_FORCE]);
|
||||||
|
sub_node->get("max-speed-increase",
|
||||||
|
&m_values[SUPER_MAX_SPEED_INCREASE]);
|
||||||
|
sub_node->get("fade-out-time",
|
||||||
|
&m_values[SUPER_FADE_OUT_TIME]);
|
||||||
|
}
|
||||||
|
|
||||||
if (const XMLNode *sub_node = node->getNode("swatter"))
|
if (const XMLNode *sub_node = node->getNode("swatter"))
|
||||||
{
|
{
|
||||||
sub_node->get("duration",
|
sub_node->get("duration",
|
||||||
|
@ -104,6 +104,7 @@ enum DebugMenuCommand
|
|||||||
DEBUG_POWERUP_PARACHUTE,
|
DEBUG_POWERUP_PARACHUTE,
|
||||||
DEBUG_POWERUP_PLUNGER,
|
DEBUG_POWERUP_PLUNGER,
|
||||||
DEBUG_POWERUP_RUBBERBALL,
|
DEBUG_POWERUP_RUBBERBALL,
|
||||||
|
DEBUG_POWERUP_SUPER,
|
||||||
DEBUG_POWERUP_SWATTER,
|
DEBUG_POWERUP_SWATTER,
|
||||||
DEBUG_POWERUP_SWITCH,
|
DEBUG_POWERUP_SWITCH,
|
||||||
DEBUG_POWERUP_ZIPPER,
|
DEBUG_POWERUP_ZIPPER,
|
||||||
@ -501,6 +502,9 @@ bool handleContextMenuAction(s32 cmd_id)
|
|||||||
case DEBUG_POWERUP_RUBBERBALL:
|
case DEBUG_POWERUP_RUBBERBALL:
|
||||||
addPowerup(PowerupManager::POWERUP_RUBBERBALL);
|
addPowerup(PowerupManager::POWERUP_RUBBERBALL);
|
||||||
break;
|
break;
|
||||||
|
case DEBUG_POWERUP_SUPER:
|
||||||
|
addPowerup(PowerupManager::POWERUP_SUPER_SIZE);
|
||||||
|
break;
|
||||||
case DEBUG_POWERUP_SWATTER:
|
case DEBUG_POWERUP_SWATTER:
|
||||||
addPowerup(PowerupManager::POWERUP_SWATTER);
|
addPowerup(PowerupManager::POWERUP_SWATTER);
|
||||||
break;
|
break;
|
||||||
@ -904,6 +908,7 @@ bool onEvent(const SEvent &event)
|
|||||||
sub->addItem(L"Cake", DEBUG_POWERUP_CAKE );
|
sub->addItem(L"Cake", DEBUG_POWERUP_CAKE );
|
||||||
sub->addItem(L"Parachute", DEBUG_POWERUP_PARACHUTE );
|
sub->addItem(L"Parachute", DEBUG_POWERUP_PARACHUTE );
|
||||||
sub->addItem(L"Plunger", DEBUG_POWERUP_PLUNGER );
|
sub->addItem(L"Plunger", DEBUG_POWERUP_PLUNGER );
|
||||||
|
sub->addItem(L"SuperSize", DEBUG_POWERUP_SUPER );
|
||||||
sub->addItem(L"Swatter", DEBUG_POWERUP_SWATTER );
|
sub->addItem(L"Swatter", DEBUG_POWERUP_SWATTER );
|
||||||
sub->addItem(L"Switch", DEBUG_POWERUP_SWITCH );
|
sub->addItem(L"Switch", DEBUG_POWERUP_SWITCH );
|
||||||
sub->addItem(L"Zipper", DEBUG_POWERUP_ZIPPER );
|
sub->addItem(L"Zipper", DEBUG_POWERUP_ZIPPER );
|
||||||
|
Loading…
Reference in New Issue
Block a user