All pastes #556605 Raw Edit

omen

public text v1 · immutable
·published 2007-06-10 17:48 UTC
rendered paste body
//JUNK EMPIRES CITY

AddCSLuaFile( "cl_init.lua" )
AddCSLuaFile( "shared.lua" )
include( 'shared.lua' )

function ENT:SpawnFunction( ply, tr )

	if ( !tr.Hit ) then return end
	
	local SpawnPos = tr.HitPos + tr.HitNormal * 16
	
	local ent = ents.Create( "city" )
		ent:SetPos( SpawnPos )
	ent:Spawn()
	ent:Activate()
	
	return ent
	
end

function ENT:Initialize()
	
	//the city
	self.Entity:SetModel( "models/props_trainstation/trainstation_ornament002.mdl" )
	self.Entity:PhysicsInit( SOLID_VPHYSICS )
	self.Entity:SetMoveType( MOVETYPE_VPHYSICS )
	self.Entity:SetSolid( SOLID_VPHYSICS ) 
	
	self.Entity:SetMaterial("models/debug/debugwhite")
		

	local phys = self.Entity:GetPhysicsObject()
	if (phys:IsValid()) then
		phys:EnableMotion(false) //Don't want our cities rolling around everywhere
	end
	
	self.claimed = false
	self.combatant = false
	self.Overlord = "nothing"

end

function ENT:Use(ply)

	if(!self.claimed) then
		self.Entity:SetColor( ply:GetColor() ) //set city to player's color
		local R, G, B, A = ply:GetColor()
		self.Entity:SetNWInt("ColorR", R)
		self.Entity:SetNWInt("ColorG", G)
		self.Entity:SetNWInt("ColorB", B)
		ply:SetNWInt(ply:Nick() .. "_cities", ply:GetNWInt(ply:Nick() .. "_cities") + 1) //add to the citycount
		//ply:SetNWEntity( "city_" .. ply:GetNWInt(ply:Nick() .. "_cities"), self.Entity) //not too sure about this lagwise
		self.claimed = true
		self.Overlord = ply
		self.combatant = true
	end

	
end

function ENT:GetOverlord()
	return self.Overlord
end

function ENT:Raze()
	if(self.Overlord != "nothing") then
		self.Overlord:SetNWInt(self.Overlord:Nick() .. "_cities", self.Overlord:GetNWInt(self.Overlord:Nick() .. "_cities") - 1)
		self.Overlord:SetNWInt(self.Overlord:Nick() .. "_gold", self.Overlord:GetNWInt(self.Overlord:Nick() .. "_gold") - 5)
		local effectdata = EffectData()
		effectdata:SetEntity( self )
		effectdata:SetOrigin( self.Entity:GetPos())
		util.Effect( "propspawn", effectdata )
		self.Entity:Remove()
	end
end

function ENT:IsCombatant()
	return self.combatant
end

function ENT:Think()
for k, v in pairs(ents.FindInSphere(self.Entity:GetPos(), 200)) do
		if (v:GetClass() == "farm" || v:GetClass() == "iron_mine") then
		v:SetNWBool("claimebel", true)
		v:SetNWString("claimebelby", "self.Overlord")	
		end
	end
end