2312 |
} |
} |
2313 |
|
|
2314 |
//---------------------------------------- |
//---------------------------------------- |
2315 |
|
// Invisible Abyss |
2316 |
|
//---------------------------------------- |
2317 |
|
namespace |
2318 |
|
{ |
2319 |
|
class InvisibleAbyss : public Item { |
2320 |
|
CLONEOBJ(InvisibleAbyss); |
2321 |
|
public: |
2322 |
|
InvisibleAbyss() : Item("it-abyss") {} |
2323 |
|
|
2324 |
|
private: |
2325 |
|
bool actor_hit(Actor *a) { |
2326 |
|
SendMessage(a, "fall"); |
2327 |
|
return false; |
2328 |
|
} |
2329 |
|
|
2330 |
|
void init_model() { set_model("invisible"); } |
2331 |
|
|
2332 |
|
}; |
2333 |
|
} |
2334 |
|
|
2335 |
|
//---------------------------------------- |
2336 |
|
// Landmine |
2337 |
|
//---------------------------------------- |
2338 |
|
namespace |
2339 |
|
{ |
2340 |
|
class Landmine : public Item { |
2341 |
|
CLONEOBJ(Landmine); |
2342 |
|
public: |
2343 |
|
Landmine() : Item("it-landmine") {} |
2344 |
|
|
2345 |
|
private: |
2346 |
|
|
2347 |
|
bool actor_hit(Actor *a) { |
2348 |
|
const double ITEM_RADIUS = 0.3; |
2349 |
|
px::V2 item_center(get_pos().x + 0.5, get_pos().y + 0.5); |
2350 |
|
double dist = length(a->get_pos()-item_center); |
2351 |
|
if (dist < ITEM_RADIUS) { |
2352 |
|
SetItem(get_pos(), MakeItem("it-explosion2")); |
2353 |
|
} |
2354 |
|
return false; |
2355 |
|
} |
2356 |
|
|
2357 |
|
void on_stonehit(Stone */*st*/) { |
2358 |
|
SetItem(get_pos(), MakeItem("it-explosion2")); |
2359 |
|
} |
2360 |
|
|
2361 |
|
}; |
2362 |
|
} |
2363 |
|
|
2364 |
|
//---------------------------------------- |
2365 |
// Remaining items (still need to be implemented) |
// Remaining items (still need to be implemented) |
2366 |
//---------------------------------------- |
//---------------------------------------- |
2367 |
namespace |
namespace |
2420 |
Register(new Hill); |
Register(new Hill); |
2421 |
Register(new Hollow); |
Register(new Hollow); |
2422 |
Register(new InverseSensor); |
Register(new InverseSensor); |
2423 |
|
Register(new InvisibleAbyss); |
2424 |
Register(new Key); |
Register(new Key); |
2425 |
Register(new Key_a); |
Register(new Key_a); |
2426 |
Register(new Key_b); |
Register(new Key_b); |
2427 |
Register(new Key_c); |
Register(new Key_c); |
2428 |
|
Register(new Landmine); |
2429 |
Register(new MagicWand); |
Register(new MagicWand); |
2430 |
Register(new Magnet); |
Register(new Magnet); |
2431 |
Register(new Odometer); |
Register(new Odometer); |