Descriptions were mostly entirely copied from https://gitlab.com/xonotic/xonotic/-/wikis/Monsters.
CLASS(NullMonster, Monster)
ATTRIB(NullMonster, m_hidden, bool, true);
ENDCLASS(NullMonster)
-REGISTER_MONSTER(Null, NEW(NullMonster));
+REGISTER_MONSTER(Null, NullMonster);
REGISTRY_DEFINE_GET(Monsters, MON_Null)
/** (BOTH?) sets animations for monster */
METHOD(Monster, mr_anim, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
+ METHOD(Monster, describe, string(Monster this)) { TC(Monster, this); return SUPER(Object).describe(this); }
ENDCLASS(Monster)
#endif
ATTRIB(Golem, netname, string, "golem");
ATTRIB(Golem, monster_name, string, _("Golem"));
+ METHOD(Golem, describe, string(Golem this))
+ {
+ TC(Golem, this);
+ return _("Golems are truly a force to be feared. They tend to have an immense amount of health and take only half the damage from explosions\n\n"
+ "His pride and joy is his lightning energy attack. His attacks are throwing electro balls, and if the prey is near him he will attack with his claws");
+ }
ENDCLASS(Golem)
REGISTER_MONSTER(GOLEM, NEW(Golem));
#endif
ATTRIB(Mage, netname, string, "mage");
ATTRIB(Mage, monster_name, string, _("Mage"));
+ METHOD(Mage, describe, string(Mage this))
+ {
+ TC(Mage, this);
+ return _("Mages are capable of developing magic with their powerful knowledge that they learn and practice during their spell sciences. "
+ "Sometimes the Mage can give regeneration to the owner and sometimes makes the owner pay the health for his needs to be with him\n\n"
+ "The Mage attacks by launching magic balls. This spell attack is known as \"Mage spike\"");
+ }
ENDCLASS(Mage)
REGISTER_MONSTER(MAGE, NEW(Mage));
#endif
ATTRIB(Spider, netname, string, "spider");
ATTRIB(Spider, monster_name, string, _("Spider"));
+ METHOD(Spider, describe, string(Spider this))
+ {
+ TC(Spider, this);
+ return _("The Spider is a big arachnid that walks with 8 legs only on the ground, traveling faster than other monsters\n\n"
+ "When an opponent approaches a Spider, it will spit cobweb energy balls to slow down prey, then attack nearby opponents with its chelicerae");
+ }
ENDCLASS(Spider)
REGISTER_MONSTER(SPIDER, NEW(Spider));
#endif
ATTRIB(Wyvern, netname, string, "wyvern");
ATTRIB(Wyvern, monster_name, string, _("Wyvern"));
+ METHOD(Wyvern, describe, string(Wyvern this))
+ {
+ TC(Wyvern, this);
+ return _("The Wyvern is a dragon that was said to breathe fire or to possess a poisonous breath, a reptilian body, two legs or sometimes none, and a spiked tail. "
+ "The alleged marine variant had a fishtail instead of the spiny dragon tail\n\n"
+ "Wyvern flies around the map and chases and attacks his opponents with fireballs");
+ }
ENDCLASS(Wyvern)
REGISTER_MONSTER(WYVERN, NEW(Wyvern));
#endif
ATTRIB(Zombie, netname, string, "zombie");
ATTRIB(Zombie, monster_name, string, _("Zombie"));
+ METHOD(Zombie, describe, string(Zombie this))
+ {
+ TC(Zombie, this);
+ return _("The Zombie is an undead human that tears chunks of flesh from its head, hindquarters, and crotch before proceeding to toss them at the player character for minor damage\n\n"
+ "When an opponent comes too close to the Zombie, it will start chasing then launch to attack with a bite\n\n"
+ "When a Zombie is close to death, it will stand in a \"dead pose,\" from which it can be revived. "
+ "To properly kill one, you will need to damage the Zombie when it is in a dead pose");
+ }
ENDCLASS(Zombie)
REGISTER_MONSTER(ZOMBIE, NEW(Zombie));