MAC Lift

MouseMouse The Lighter Side of Pessimism Join Date: 2002-03-02 Member: 263Members, NS1 Playtester, Forum Moderators, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
Give MACs the ability to pick up & carry almost any marine structure or item, apart from:
- Command Centers
- Resource Towers
- Medpacks
- Ammopacks
- Catpacks
- Other MACs
- ARCs

Structures/items would deactivate while they're being carried.

Normally, MACs spend most of their time just floating around until something needs building or welding. This MAC Lift ability would turn them into active support & supply units and give the marine comm a lot of interesting options.

Comments

  • .trixX..trixX. Budapest Join Date: 2007-10-11 Member: 62605Members
    edited August 2018
    hmmm.....
    s2mbvb3pxpy5.jpg

    COUNT ME IN!

    Rolling sentry deployment with two batteries. I wanna try that strat! :D
  • skav2skav2 Join Date: 2007-05-28 Member: 61037Members, Reinforced - Gold
    It would be more fair if MACS could carry dropped weapons and equipment. Marine commander could send in a mac to retreive a shotgun for example.
  • MouseMouse The Lighter Side of Pessimism Join Date: 2002-03-02 Member: 263Members, NS1 Playtester, Forum Moderators, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
    edited August 2018
    That's what I was thinking when I mentioned carrying items. Carrying weapons, mines, jetpacks or empty EXOs (and anything other droppables apart from meds, ammo & catpacks that I've forgotten).
    .trixX. wrote: »
    Rolling sentry deployment with two batteries. I wanna try that strat! :D
    One thing that'd make that interesting is that if one of the MACs is destroyed you're left with a battery sitting in the middle of nowhere, until you recycle it or send another MAC to pick it up :)

  • .trixX..trixX. Budapest Join Date: 2007-10-11 Member: 62605Members
    Mouse wrote: »
    That's what I was thinking when I mentioned carrying items. Carrying weapons, mines, jetpacks or empty EXOs (and anything other droppables apart from meds, ammo & catpacks that I've forgotten).
    .trixX. wrote: »
    Rolling sentry deployment with two batteries. I wanna try that strat! :D
    One thing that'd make that interesting is that if one of the MACs is destroyed you're left with a battery sitting in the middle of nowhere, until you recycle it or send another MAC to pick it up :)

    Exactly! I love challenges :D You have to pick your time carefully when to roll the battery forward :]
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    skav2 wrote: »
    It would be more fair if MACS could carry dropped weapons and equipment. Marine commander could send in a mac to retreive a shotgun for example.

    I dunno man, if my shotty was dropped somewhere and I sprint back to see a MAC basically stealing it for "the greater good". That MAC is going to be demoted to being my personal barista!
  • pSyk0mAnpSyk0mAn Nerdish by Nature Germany Join Date: 2003-08-07 Member: 19166Members, NS2 Playtester, Squad Five Silver, NS2 Community Developer
    edited August 2018
    I would actually love to have a MAC acting as a mobile Armory for Marines, if the comm wants so. Commander could deploy it any time to enable the Armory function.
    Ofc even cooler would be an actual Transformer-Mac Animation into a kinda Armory.
    Carrying an Armory or other structures would be the first step to try this out, but a Transformer-Mac would be so much cooler ofc.
  • MephillesMephilles Germany Join Date: 2013-08-07 Member: 186634Members, NS2 Map Tester, NS2 Community Developer
    MACs should bring me coffee to the frontlines which reduce my reload speed :tongue:
  • .trixX..trixX. Budapest Join Date: 2007-10-11 Member: 62605Members
    Mephilles wrote: »
    MACs should bring me coffee to the frontlines which reduce my reload speed :tongue:

    Macbucks - Catpack Latte?
  • ArchieArchie Antarctica Join Date: 2006-09-19 Member: 58028Members, Constellation, Reinforced - Supporter, WC 2013 - Supporter
    edited August 2018
    Perhaps this could help someway in regards to the creation of mac lift mod :D? rofl @ release date of Date: 2011-10-28

    edit:it appears that there's a mod on the workshop already for lerklift.
    // ==============================================================
    //
    // Lerk Lift Mod v0.1
    //    by Hackepeter
    //
    // Date: 2011-10-28
    //
    // Installation: place this file in ns2\lua and add to the beginning
    // of Alien_Server.lua: Script.Load("lua/LerkLiftMod.lua")
    // 
    // Admins can turn the mod at anytime (also mid game) off/on
    // with lerklift 0/1 in the server console.
    //
    // ==============================================================
    
    // should the mod be enabled by default?
    Alien.kLiftEnabled = true
    
    Alien.kLiftInterval = 1
    
    Alien.kLifterClass = "Lerk"
    Alien.kLiftedClass = "Gorge"
    
    Alien.kLifterTip = "You just lifted a Gorge. Press use-key to release."
    Alien.kLiftedTip = "You just lifted by a Lerk. Press use-key to release."
    
    Alien.kLifterOnSound = "alien_vision_on"
    Alien.kLifterOffSound = "alien_vision_off"
    
    function Alien:GetCanBeUsed()
    
        if self:GetIsAlive() then
            return true
        end
    	
        return Player.GetCanBeUsed(self)
    end
    
    function Alien:OnUse(player, elapsedTime, useAttachPoint, usePoint)
    
    	if Alien.kLiftEnabled and // don't trigger lifting to often
    	(self.timeOfLastLift == nil or (Shared.GetTime() - self.timeOfLastLift) > Alien.kLiftInterval) then
    		// if this is the Gorge used by a Lerk
    		if self:isa(Alien.kLiftedClass) and player:isa(Alien.kLifterClass) then
    		
    			// if the Lerk is not yet lifting any Gorge
    			if player.liftingToId == nil then
    			
    				// lift the gorge
    				self:SetLiftingTo(player)
    				self.timeOfLastLift = Shared.GetTime()
    				
    				return true
    			// if the Lerk is already lifting this Gorge (me)
    			elseif player.liftingToId == self:GetId() then
    			
    				// release
    				self:ResetLifting()
    				self.timeOfLastLift = Shared.GetTime()
    				
    				return true
    			end
    		
    		// if this is the Lerk used by a Gorge
    		elseif self:isa(Alien.kLifterClass) and player:isa(Alien.kLiftedClass) then
    		
    			// if the Lerk is already lifting this Gorge
    			if self.liftingToId == player:GetId() then
    			
    				// release
    				self:ResetLifting()
    				self.timeOfLastLift = Shared.GetTime()
    				
    				return true
    			end
    		end
    	end
    	
    	return Player.OnUse(self, player, elapsedTime, useAttachPoint, usePoint)
    end
    
    function Alien:PostUpdateMove(input, runningPrediction)
    	// only do stuff if something is lifted
    	if self.liftingToId ~= nil then
    		if Alien.kLiftEnabled then
    		
    			local isLifter = self:isa(Alien.kLifterClass)
    			local isLifted = self:isa(Alien.kLiftedClass)
    			if isLifter or isLifted then
    			
    				local liftingTo = nil
    				if self.liftingToId ~= nil then
    					liftingTo = Shared.GetEntity(self.liftingToId)
    				
    					// check if there is a lifting
    					if liftingTo ~= nil and liftingTo:GetIsAlive() then
    					
    						// if this alien is lifted copy position from lifter
    						if isLifted then
    							lifterPos = liftingTo:GetOrigin();
    							local liftedPos = Vector(lifterPos.x, lifterPos.y, lifterPos.z)
    							self:SetOrigin(liftedPos)
    						end
    					else
    						// reset if lifted alien is dead or vanished
    						self:ResetLifting()
    					end
    					
    				end
    			end
    		// if lifting has been disabled in midgame reset this lifting now
    		else
    			self:ResetLifting()
    		end
    	end
    end
    
    // enabled the lifting between two aliens if there is no other lifting
    function Alien:SetLiftingTo(otherAlien)
    	if self.liftingToId  == nil then
    		self.liftingToId = otherAlien:GetId()
    		self:TriggerEffects(Alien.kLifterOnSound)
    		self:AddTooltip(ConditionalValue(self:isa(Alien.kLiftedClass), Alien.kLiftedTip, Alien.kLifterTip))
    		otherAlien:SetLiftingTo(self)
    	end
    end
    
    // reset all linking between lifter and lifted alien
    function Alien:ResetLifting()
    
    	if self.liftingToId ~= nil then
    	
    		local liftingTo = Shared.GetEntity(self.liftingToId)
    		self.liftingToId = nil
    		if liftingTo ~= nil then
    			liftingTo:ResetLifting()
    		end
    		
    		self:TriggerEffects(Alien.kLifterOffSound)
    
    	end
    	
    end
    
    // Admin function to enable/disable LerkLiftMod
    function OnCommandLerkLift(client, enable)
    	if client == nil then
    		if enable ~= nil then
    			Alien.kLiftEnabled = tonumber(enable) ~= 0			
    		end
    
    		Print(string.format("LerkLiftMod is %d", ConditionalValue(Alien.kLiftEnabled, 1, 0), enable))
    	end
    end
    
    Event.Hook("Console_lerklift", OnCommandLerkLift)
    
Sign In or Register to comment.