initial commit
This commit is contained in:
46
aghanim_singleplayer/scripts/vscripts/items/item_life_rune.lua
Executable file
46
aghanim_singleplayer/scripts/vscripts/items/item_life_rune.lua
Executable file
@@ -0,0 +1,46 @@
|
||||
item_life_rune = class({})
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_life_rune:GetBehavior()
|
||||
return DOTA_ABILITY_BEHAVIOR_IMMEDIATE
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
function item_life_rune:OnSpellStart()
|
||||
if IsServer() then
|
||||
if self:GetCaster() ~= nil and self:GetCaster():IsRealHero() then
|
||||
if self:GetCaster().nRespawnsRemaining >= AGHANIM_MAX_LIVES then
|
||||
local newItem = CreateItem( "item_life_rune", nil, nil )
|
||||
newItem:SetPurchaseTime( 0 )
|
||||
local drop = CreateItemOnPositionSync( self:GetCaster():GetAbsOrigin(), newItem )
|
||||
local dropTarget = self:GetCaster():GetAbsOrigin() + RandomVector( RandomFloat( 50, 150 ) )
|
||||
newItem:LaunchLoot( false, 150, 0.75, dropTarget )
|
||||
self:SpendCharge()
|
||||
return
|
||||
end
|
||||
|
||||
self:GetCaster().nRespawnsRemaining = math.min( self:GetCaster().nRespawnsRemaining + 1, AGHANIM_MAX_LIVES )
|
||||
local hPlayer = self:GetCaster():GetPlayerOwner()
|
||||
if hPlayer then
|
||||
PlayerResource:SetCustomBuybackCooldown( hPlayer:GetPlayerID(), 0 )
|
||||
PlayerResource:SetCustomBuybackCost( hPlayer:GetPlayerID(), 0 )
|
||||
end
|
||||
|
||||
local netTable = {}
|
||||
CustomGameEventManager:Send_ServerToPlayer( self:GetCaster():GetPlayerOwner(), "gained_life", netTable )
|
||||
CustomNetTables:SetTableValue( "respawns_remaining", string.format( "%d", self:GetCaster():entindex() ), { respawns = self:GetCaster().nRespawnsRemaining } )
|
||||
|
||||
local gameEvent = {}
|
||||
gameEvent["player_id"] = self:GetCaster():GetPlayerOwner():GetPlayerID()
|
||||
gameEvent["team_number"] = DOTA_TEAM_GOODGUYS
|
||||
gameEvent["locstring_value"] = "#DOTA_Tooltip_Ability_item_life_rune"
|
||||
gameEvent["message"] = "#Dungeon_FoundLifeRune"
|
||||
FireGameEvent( "dota_combat_event_message", gameEvent )
|
||||
end
|
||||
self:SpendCharge()
|
||||
end
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
Reference in New Issue
Block a user