aboutsummaryrefslogtreecommitdiff
path: root/src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala')
-rw-r--r--src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala66
1 files changed, 0 insertions, 66 deletions
diff --git a/src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala b/src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala
index 944f2e6..7d9996c 100644
--- a/src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala
+++ b/src/scalevalapokalypsi/Model/Entities/NPCs/NPC.scala
@@ -1,10 +1,8 @@
package scalevalapokalypsi.Model.Entities.NPCs
-import scala.collection.mutable.Buffer
import scalevalapokalypsi.Model.*
import scalevalapokalypsi.Model.Entities.*
-import scala.util.Random
/** A `NPC` object represents a non-playable in-game character controlled by
* the server using this objects `act` method. It can also be "talked to": it
@@ -25,67 +23,3 @@ abstract class NPC(
) extends Entity(adventure, name, initialLocation, initialHP, maxHp):
def getDialog: String
def act(): Unit
-
-class Zombie(
- adventure: Adventure,
- identifier: String,
- initialLocation: Area,
- initialHP: Int = 20
-) extends NPC(adventure, identifier, initialLocation, initialHP, 20):
-
- private val damage = 10
- private val dialogs = Vector(
- "örvlg",
- "grr",
- "äyyrrrgrlgb ww",
- "aaak brzzzwff ååö",
- "äkb glan abglum",
- "öub gpa"
- )
-
- override def getDialog: String =
- val dialogIndex = Random.between(0, this.dialogs.length)
- this.dialogs(dialogIndex)
-
- override def act(): Unit =
- val possibleVictims = this.location
- .getEntities
- .filter(_ != this)
- .toVector
- val index: Int =
- if possibleVictims.isEmpty then 0
- else Random.between(0, possibleVictims.length)
- if possibleVictims.isEmpty then
- val possibleDirections = this.location.getNeighborNames.toVector
- val directionIndex = Random.between(0, possibleDirections.length*2)
- possibleDirections
- .toVector
- .lift(directionIndex)
- .flatMap(this.go(_))
- .foreach(this.location.observeEvent(_))
- else
- this.location.observeEvent(
- this.attack(possibleVictims(index))
- )
-
-
- private def attack(entity: Entity): Event =
- if Random.nextBoolean() then
- entity.takeDamage(this.damage)
- Event(
- Map.from(Vector((
- entity,
- s"${this.name} puree sinua, hyi yäk!\n" +
- s"${entity.condition(0)}"
- ))),
- s"${this.name} puree henkilöä ${entity.name}.\n" +
- s"${entity.condition(1)}"
- )
- else
- Event(
- Map.from(Vector((
- entity,
- s"${this.name} yrittää purra sinua mutta kaatuu ohitsesi."
- ))),
- s"${this.name} yrittää purra henkilöä ${entity.name}, mutta epäonnistuu surkeasti."
- )