Consistency/data/entities/animals/boss_pit/wand.lua

42 lines
1.2 KiB
Lua

dofile_once("data/scripts/lib/utilities.lua")
local entity_id = GetUpdatedEntityID()
local x, y, a = EntityGetTransform( entity_id )
local p = EntityGetWithTag( "player_unit" )
local comps = EntityGetComponent( entity_id, "VariableStorageComponent" )
local proj = ""
local mult = 1.0
if ( comps ~= nil ) then
for i,v in ipairs( comps ) do
local n = ComponentGetValue2( v, "name" )
if ( n == "memory" ) then
proj = ComponentGetValue2( v, "value_string" )
elseif ( n == "mult" ) then
mult = ComponentGetValue2( v, "value_float" )
end
end
end
local length = 300
local homing = EntityGetComponent( entity_id, "HomingComponent" )
if ( homing == nil ) then
length = 500
end
if ( p ~= nil ) and ( #proj > 0 ) then
for i,v in ipairs( p ) do
local px,py = EntityGetTransform( v )
local dir = 0 - math.atan2( py - y, px - x )
local vel_x = math.cos( dir ) * length * mult
local vel_y = 0 - math.sin( dir ) * length * mult
local pid = shoot_projectile_from_projectile( entity_id, proj, x, y, vel_x, vel_y )
edit_component( pid, "ProjectileComponent", function(comp,vars)
local d = ComponentGetValue2( comp, "damage" )
d = d + 0.2
ComponentSetValue2( comp, "damage", d )
end)
end
end