summaryrefslogtreecommitdiff
path: root/src/game/unit_repl.cpp
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2018-04-25 18:51:04 +0200
committerPaweł Redman <pawel.redman@gmail.com>2018-04-25 18:53:06 +0200
commitd04e1b48bd934f8d9d91aab13e9e51393fd7b6ba (patch)
tree229455e87f9032d2caa2b631e632482c65b3f471 /src/game/unit_repl.cpp
parente4be331008ca5e64ef2d42f51c5cf5799dd61abc (diff)
Rename repl/replicator to teleporter.
Diffstat (limited to 'src/game/unit_repl.cpp')
-rw-r--r--src/game/unit_repl.cpp118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/game/unit_repl.cpp b/src/game/unit_repl.cpp
deleted file mode 100644
index 2e0c3fd..0000000
--- a/src/game/unit_repl.cpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
-This file is part of Minitrem.
-
-Minitrem is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 2 of the License, or
-(at your option) any later version.
-
-Minitrem is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Minitrem. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "game.hpp"
-
-namespace game {
-
-unit_repl_t::unit_repl_t(game::state_t *game_) : unit_t(game_, UNIT_REPL)
-{
- size[0] = {-0.4f, -0.2f};
- size[1] = {+0.4f, +0.4f};
- render_size = size;
- render_layer = render::LAYER_FLAT;
- cmodel.cflags = CF_SURFACE2;
-
- name = "Replicator";
- ignore_waking = false;
- max_health = 35;
- health = 5;
-
- friendly = true;
- controllable = true;
- constructed = false;
-}
-
-void unit_repl_t::on_damage(unit_t *attacker)
-{
- assets::repl.damage.play_3d(x);
-}
-
-void unit_repl_t::on_death(void)
-{
- game->explosion(x);
- game->deletion_list.insert(this);
-}
-
-void unit_repl_t::render_to(render::state_t *render)
-{
- if (constructed)
- render->render(game->now, &assets::repl.idle, render_bounds);
- else
- render->render(game->now, &assets::repl.unfinished, render_bounds);
-
- unit_t::render_to(render);
-}
-
-void unit_repl_t::activate(unit_t::type_t type)
-{
- size_t price;
- world::cmodel_t cmodel;
- unit_t *unit;
-
- switch (type) {
- case UNIT_SOLDIER: price = 40; break;
- case UNIT_SCIENTIST: price = 95; break;
- case UNIT_BUILDER: price = 70; break;
- default:
- abort();
- }
-
- if (game->crystals < price) {
- game->interface.print("Insufficient crystals; " + std::to_string(price - game->crystals) + " more needed.");
- return;
- }
-
- game->crystals -= price;
-
- switch (type) {
- case UNIT_SOLDIER:
- unit = new unit_soldier_t(game);
- break;
-
- case UNIT_SCIENTIST:
- unit = new unit_scientist_t(game);
- break;
-
- case UNIT_BUILDER:
- unit = new unit_builder_t(game);
- break;
-
- default:
- abort();
- }
-
- unit->place(world, x);
-
- for (world::entity_t *ent : game->world.get_entities(unit->cmodel.bounds, CF_BODY|CF_BODY_SMALL))
- {
- unit_t *other;
-
- if (ent == unit)
- continue;
-
- if (ent->type != ET_UNIT)
- continue;
-
- other = dynamic_cast<unit_t*>(ent);
- other->damage(200, NULL);
- }
-
- assets::repl.sound.play_3d(x);
-}
-
-}