1
0

Compare commits

..

10 Commits

7 changed files with 81 additions and 18 deletions

View File

@ -4,7 +4,7 @@ This mod adds big moster
![Mobs Balrog's screenshot](screenshot.png) ![Mobs Balrog's screenshot](screenshot.png)
## About ## Information
This mod added a configurable big BIG moster to defeat, This mod added a configurable big BIG moster to defeat,
taken it from the Lord of The Rings game and reworked it a bit. taken it from the Lord of The Rings game and reworked it a bit.
@ -12,20 +12,48 @@ taken it from the Lord of The Rings game and reworked it a bit.
was originally made by Hamlet but abandoned, now minimal fixed was originally made by Hamlet but abandoned, now minimal fixed
for VenenuX minetest game, https://forum.minetest.net/viewtopic.php?f=11&t=18459 for VenenuX minetest game, https://forum.minetest.net/viewtopic.php?f=11&t=18459
## Usage #### DIFERENCES WITH FLUX FORK : more fair and consistent
**Spawn chance**: 1 in half a million (twice the chance of being struck The flux fork is unfair and inconsistent:
by a lightning in real life) under -1500 on the ground
**Lowered stats**: HP range to a min of 200 to a max of 600; if you are * heavy cos has more textures and sound effects (nice but slow on phones)
* the whip just spend so much on any action
* seems sometimes not care of creative mode
* the monster is great but unfair and
* players never meet it cos spamn too much deep, and finally
* dont work in any minetest, neither well in phones/rasberrys/tables.
* it chat with player cheaters so will cause some lag in low end devices
This mob is more simple, unfeatured but faster:
* it hurts any player, event in protected areas
* dont detect invisibility in some cases
* it loads faster and works in any device, event phones or rpis
* the balrog dont chat with players launchind obscure sentences, causing more lag
### Usage
**Spawn chance**: 1 en a thousand (same the chance of being struck
by a lightning in real life) under -1500 on the ground, but if nether then
will be 1 in half a more thousand under -8000 on the ground.
**Lowered stats**: HP range to a min of 400 to a max of 600; if you are
alone then you are dead, if you are in a party you might defeat it. alone then you are dead, if you are in a party you might defeat it.
Maybe. It's a deity after all. Maybe. It's a deity after all.
## Technicall information
The mob is configurable by settings, check [settingtypes.txt](settingtypes.txt) file. The mob is configurable by settings, check [settingtypes.txt](settingtypes.txt) file.
* `mobs_balrog:balrog` : the balrog deity! * `mobs_balrog:balrog` : the balrog deity!
* `mobs_balrog:balrog_whip` : the balrog whip weapon * `mobs_balrog:balrog_whip` : the balrog whip weapon
Some commits on flux's fork are unclear by example dccf3edeccbd5c7ee6947f12919fc375690a42ff
seems work in pvp but also changes the tool registry.
Another doub change is the balrog life, in commit 3918415ed53f85266e95f6886173c6a8197b2092
that increases to 2400 but are not documneted, so non modders will not understand why dont die!
## Download: ## Download:
* https://codeberg.org/minenux/minetest-mod-mobs_balrog * https://codeberg.org/minenux/minetest-mod-mobs_balrog
@ -34,7 +62,7 @@ Changelog [changelog.md](changelog.md)
## Dependencies: ## Dependencies:
* tnt and default, from basic games, * tnt, default, from basic games,
* mobs (or so called mobs_redo) * mobs (or so called mobs_redo)
* intllib if you are using minetest 0.4 series and only optional * intllib if you are using minetest 0.4 series and only optional

View File

@ -10,6 +10,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- No further addition planned. - No further addition planned.
## [0.6.0] - 2024-03-30
### Added
- detect nether and spawn into right nodes, more deep if and more chance
### Changed
- prevent balrogs from spawning on trap nodes, using stone group
- make the balrog whip act as a wielded light source
- check user validation on use to avoid crash on disconected
- keep balrog whip drop from exploding with the balrog due lagfix
- improved information in the mod.conf, no shit of forums or contendb
## [0.5.0] - 2021-11-27 ## [0.5.0] - 2021-11-27
### Added ### Added

View File

@ -1,4 +1,6 @@
default default
tnt tnt
fire
mobs mobs
nether?
intllib? intllib?

View File

@ -1 +1 @@
Adds balrog mob to defeat MOB balrogs to defeat, under deep and if nether so more deep

View File

@ -77,7 +77,7 @@ end
local CHANCE = tonumber(minetest.settings:get("mobs_balrog_chance")) local CHANCE = tonumber(minetest.settings:get("mobs_balrog_chance"))
if (CHANCE == nil) then if (CHANCE == nil) then
CHANCE = 500000 CHANCE = 50000
end end
local MAX_NUMBER = tonumber(minetest.settings:get("mobs_balrog_aoc")) local MAX_NUMBER = tonumber(minetest.settings:get("mobs_balrog_aoc"))
@ -102,7 +102,7 @@ end
local MIN_HP = tonumber(minetest.settings:get("mobs_balrog_min_hp")) local MIN_HP = tonumber(minetest.settings:get("mobs_balrog_min_hp"))
if (MIN_HP == nil) then if (MIN_HP == nil) then
MIN_HP = 200 MIN_HP = 400
end end
local MAX_HP = tonumber(minetest.settings:get("mobs_balrog_max_hp")) local MAX_HP = tonumber(minetest.settings:get("mobs_balrog_max_hp"))
@ -131,6 +131,12 @@ if (PATH_FINDER == nil) then
end end
local spawn_nodes = {"group:stone"}
if minetest.get_modpath("nether") then
spawn_nodes = {"nether:rack", "nether:rack_deep", "group:stone"}
CHANCE = 10000
MAX_HEIGHT = -8000
end
-- --
-- Balrog entity -- Balrog entity
-- --
@ -144,7 +150,7 @@ mobs:register_mob("mobs_balrog:balrog", {
walk_velocity = 3.5, walk_velocity = 3.5,
run_velocity = 5.2, run_velocity = 5.2,
walk_chance = WALK_CHANCE, walk_chance = WALK_CHANCE,
jump_height = 16, jump_height = 14,
stepheight = 2.2, stepheight = 2.2,
view_range = VIEW_RANGE, view_range = VIEW_RANGE,
damage = DAMAGE, damage = DAMAGE,
@ -164,6 +170,7 @@ mobs:register_mob("mobs_balrog:balrog", {
pathfinding = PATH_FINDER, pathfinding = PATH_FINDER,
makes_footstep_sound = true, makes_footstep_sound = true,
sounds = { sounds = {
distance = VIEW_RANGE * 8,
war_cry = "mobs_balrog_howl", war_cry = "mobs_balrog_howl",
death = "mobs_balrog_howl", death = "mobs_balrog_howl",
attack = "mobs_balrog_stone_death" attack = "mobs_balrog_stone_death"
@ -194,7 +201,7 @@ mobs:register_mob("mobs_balrog:balrog", {
on_die = function(self, pos) on_die = function(self, pos)
self.object:remove() self.object:remove()
minetest.after(0.1, function() minetest.after(0.0, function()
-- This has been taken from ../tnt/init.lua @243 -- This has been taken from ../tnt/init.lua @243
minetest.add_particlespawner({ minetest.add_particlespawner({
amount = 128, amount = 128,
@ -212,10 +219,9 @@ mobs:register_mob("mobs_balrog:balrog", {
texture = "fire_basic_flame.png", texture = "fire_basic_flame.png",
collisiondetection = true, collisiondetection = true,
}) })
tnt.boom(pos, { tnt.boom(pos, {
name = "Balrog's Blast", name = "Balrog's Blast",
radius = 16, radius = 6,
damage_radius = 16, damage_radius = 16,
disable_drops = true, disable_drops = true,
ignore_protection = false, ignore_protection = false,
@ -236,6 +242,7 @@ minetest.register_tool("mobs_balrog:balrog_whip", {
minetest.get_background_escape_sequence("darkred"), minetest.get_background_escape_sequence("darkred"),
inventory_image = "mobs_balrog_balrog_whip.png^[transform3", inventory_image = "mobs_balrog_balrog_whip.png^[transform3",
on_use = function(itemstack, user, pointed_thing) on_use = function(itemstack, user, pointed_thing)
if not user then return end
if pointed_thing.type == "nothing" then if pointed_thing.type == "nothing" then
local dir = user:get_look_dir() local dir = user:get_look_dir()
local pos = user:get_pos() local pos = user:get_pos()
@ -346,6 +353,10 @@ minetest.register_tool("mobs_balrog:balrog_whip", {
collisiondetection = true, collisiondetection = true,
}) })
end, end,
on_blast = function(self, damage)
return false, false, {}
end,
light_source = 14,
}) })
@ -355,7 +366,7 @@ minetest.register_tool("mobs_balrog:balrog_whip", {
mobs:spawn({name = "mobs_balrog:balrog", mobs:spawn({name = "mobs_balrog:balrog",
nodes = {"group:cracky"}, nodes = spawn_nodes,
max_light = MAX_LIGHT, max_light = MAX_LIGHT,
min_light = MIN_LIGHT, min_light = MIN_LIGHT,
interval = INTERVAL, interval = INTERVAL,

View File

@ -1,3 +1,10 @@
name = mobs_balrog name = mobs_balrog
description = Adds balrogs mob to defeat description = MOB balrogs to defeat, under deep and if nether so more deep
depends = default, mobs, tnt depends = default, fire, mobs, tnt
title = mobs_balrog
url = https://codeberg.org/minenux/minetest-mod-mobs_balrog
website = https://git.minetest.io/minenux/minetest-mod-mobs_balrog
media_license = CC-BY-SA-3.0
version = 0.6.0
min_minetest_version = 0.4.16
optional_depends = nether

View File

@ -12,7 +12,7 @@ mobs_balrog_interval (Interval) int 60
# Spawn chance, higher is less likely # Spawn chance, higher is less likely
# Probabilita' di comparsa, maggiore e' e meno e' probabile # Probabilita' di comparsa, maggiore e' e meno e' probabile
mobs_balrog_chance (Chance) int 500000 mobs_balrog_chance (Chance) int 50000
# Max number of spawned barlogs # Max number of spawned barlogs
# Numero massimo di balrog generati # Numero massimo di balrog generati
@ -28,7 +28,7 @@ mobs_balrog_max_height (Max Height) int -1800
# Min hit points # Min hit points
# Punti salute minimi # Punti salute minimi
mobs_balrog_min_hp (Min HP) int 200 mobs_balrog_min_hp (Min HP) int 400
# Max hit points # Max hit points
# Punti salute massimi # Punti salute massimi