From c56dbf0450e74e2eb42caef11099f2486008f92b Mon Sep 17 00:00:00 2001 From: Sergey Sokolov Date: Mon, 6 Aug 2018 09:57:45 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B0=D1=80=D0=B0=D0=B7=D0=B8=D1=82?= =?UTF-8?q?=D1=8B=20=D0=B0=D1=82=D0=B0=D0=BA=D1=83=D1=8E=D1=82=20=D1=82?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=B6=D0=B8=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=20=D0=B8=20=D0=BD=D0=B5=D0=B7=D0=B0=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - паразиты тратят 20 единиц энергии за ход --- ru/cyberbiology/test/Bot.java | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/ru/cyberbiology/test/Bot.java b/ru/cyberbiology/test/Bot.java index f5a5101..fb91844 100644 --- a/ru/cyberbiology/test/Bot.java +++ b/ru/cyberbiology/test/Bot.java @@ -248,7 +248,14 @@ public void step() // то его потомок рождается свободным } } - health = health - 3; // каждый ход отнимает 3 единички здоровья(энегрии) + + // трата энергии за ход + if (pest > 0) { + health = health - 20; // паразит + } else { + health = health - 3; // здоровый бот + } + if (health < 1) { // если энергии стало меньше 1 bot2Organic(this); // то время умирать, превращаясь в огранику return; // и передаем управление к следующему боту @@ -1233,12 +1240,6 @@ public void mineral2Energy() @Override public void setMind(byte ma, byte mc) { - /* - if (mc == 49 && this.mind[ma] != 49) - world.pestGenes++; - else if (mc != 49 && this.mind[ma] == 49) - world.pestGenes--; - */ if (this.mind[ma] == 49) this.pest--; if (mc == 49) this.pest++; this.mind[ma]=mc; @@ -1257,12 +1258,15 @@ public void pestAttack() int yt = yFromVektorR(this, 0); if ((yt >= 0) && (yt < world.height) && (world.matrix[xt][yt] != null)) { Bot victim = world.matrix[xt][yt]; - if (victim.alive == LV_ALIVE) { // если там живой бот + // паразит атакует только живых и незараженных ботов + if (victim.alive == LV_ALIVE && victim.pest == 0) { int healthDrain = victim.health > 100 ? 100 : victim.health; this.health = this.health + healthDrain; if (this.health > 1000) this.health = 1000; victim.health = victim.health - healthDrain; + if (victim.health < 1) + bot2Organic(victim); } } }