From a2527d385de0bfbbcc2e79eed95b96cd610dd024 Mon Sep 17 00:00:00 2001 From: BR- Date: Sat, 20 Jul 2013 22:50:28 +0400 Subject: [PATCH] grenade block damage now uses instant radiosity --- pkg/base/common.lua | 1 + pkg/base/lib_vector.lua | 1 + pkg/base/obj_nade.lua | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/pkg/base/common.lua b/pkg/base/common.lua index 6202d5e..5927640 100644 --- a/pkg/base/common.lua +++ b/pkg/base/common.lua @@ -104,6 +104,7 @@ MODE_NADE_VPL_MAX_TRIES = 1000 MODE_NADE_VPL_MAX_RANGE = 30.0 MODE_NADE_VPL_DIRECT_STRENGTH = 1.0 MODE_NADE_VPL_DAMAGE_1 = 2000.0 +MODE_NADE_VPL_BLK_DAMAGE = 30 MODE_TEAM_GUNS = false diff --git a/pkg/base/lib_vector.lua b/pkg/base/lib_vector.lua index b218da7..feb156f 100644 --- a/pkg/base/lib_vector.lua +++ b/pkg/base/lib_vector.lua @@ -461,6 +461,7 @@ function vpl_gen_from_sphere(ssx, ssy, ssz, maxcount, maxdist, maxtries) vpls[#vpls + 1] = { x = px, y = py, z = pz, vx = nx, vy = ny, vz = nz, + cx = ncx, cy = ncy, cz = ncz, d = pd + dist, s = ns, c = pc } diff --git a/pkg/base/obj_nade.lua b/pkg/base/obj_nade.lua index 0c39937..445768b 100644 --- a/pkg/base/obj_nade.lua +++ b/pkg/base/obj_nade.lua @@ -208,6 +208,26 @@ function new_nade(settings) end end end + if MODE_NADE_VPL_ENABLE then + local dmg_blks = {} + for j=1,#vpls do + local v = vpls[j] + local x = v.cx --math.floor(v.x+0.5) + local y = v.cy --math.floor(v.y+0.5) + local z = v.cz --math.floor(v.z+0.5) + local blk = {x,y,z} + if y and y < ylen-2 then + if not dmg_blks[blk] then + dmg_blks[blk] = 0 + end + dmg_blks[blk] = dmg_blks[blk] + MODE_NADE_VPL_BLK_DAMAGE + end + end + for blk,dmg in pairs(dmg_blks) do + bhealth_damage(blk[1],blk[2],blk[3], dmg, players[this.pid]) + net_broadcast(nil, common.net_pack("BHHHH", PKT_BLK_DAMAGE, blk[1],blk[2],blk[3], dmg)) + end + end end