mirror of
				https://github.com/vcmi/vcmi.git
				synced 2025-10-31 00:07:39 +02:00 
			
		
		
		
	* Made most Handlers derived from CHandlerBase and moved service API there. * Declared existing Entity APIs. * Added basic script context caching * Started Lua script module * Started Lua spell effect API * Started script state persistence * Started battle info callback binding * CommitPackage removed * Extracted spells::Caster to own header; Expanded Spell API. * implemented !!MC:S, !!FU:E, !!FU:P, !!MA, !!VR:H, !!VR:C * !!BU:C, !!BU:E, !!BU:G, !!BU:M implemented * Allow use of "MC:S@varName@" to declare normal variable (technically v-variable with string key) * Re-enabled VERM macros. * !?GM0 added * !?TM implemented * Added !!MF:N * Started !?OB, !!BM, !!HE, !!OW, !!UN * Added basic support of w-variables * Added support for ERM indirect variables * Made !?FU regular trigger * !!re (ERA loop receiver) implemented * Fixed ERM receivers with zero args.
		
			
				
	
	
		
			45 lines
		
	
	
		
			649 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			649 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local ReceiverBase = require("core:erm.ReceiverBase")
 | |
| 
 | |
| local FU = ReceiverBase:new()
 | |
| 
 | |
| function FU:new(ERM, fun)
 | |
| 	assert(fun, "!!FU requires 1 argument")
 | |
| 	return ReceiverBase.new(self,
 | |
| 	{
 | |
| 		ERM=ERM,
 | |
| 		fun=fun,
 | |
| 	})
 | |
| end
 | |
| 
 | |
| 
 | |
| function FU:P(x, ...)
 | |
| 	local argc = select('#', ...)
 | |
| 	local newx = {}
 | |
| 	local ret = {}
 | |
| 
 | |
| 	for idx = 1, argc do
 | |
| 		local v = (select(idx, ...))
 | |
| 		idx = tostring(idx)
 | |
| 
 | |
| 		if v ~= nil then
 | |
| 			newx[idx] = v
 | |
| 		end
 | |
| 	end
 | |
| 
 | |
| 	self.ERM:callFunction(self.fun, newx)
 | |
| 
 | |
| 	for idx = 1, argc do
 | |
| 		local v = (select(idx, ...))
 | |
| 		if v == nil then
 | |
| 			ret[idx] = newx[tostring(idx)]
 | |
| 		else
 | |
| 			ret[idx] = nil
 | |
| 		end
 | |
| 	end
 | |
| 
 | |
| 	return unpack(ret)
 | |
| end
 | |
| 
 | |
| 
 | |
| return FU
 |