Fix ABM trigger chance being often way too high
This commit is contained in:
		
							parent
							
								
									cd0019acd2
								
							
						
					
					
						commit
						4630281318
					
				| @ -588,15 +588,17 @@ public: | ||||
| 			float trigger_interval = abm->getTriggerInterval(); | ||||
| 			if(trigger_interval < 0.001) | ||||
| 				trigger_interval = 0.001; | ||||
| 			float actual_interval = dtime_s; | ||||
| 			if(use_timers){ | ||||
| 				i->timer += dtime_s; | ||||
| 				if(i->timer < trigger_interval) | ||||
| 					continue; | ||||
| 				i->timer -= trigger_interval; | ||||
| 				actual_interval = trigger_interval; | ||||
| 			} | ||||
| 			ActiveABM aabm; | ||||
| 			aabm.abm = abm; | ||||
| 			float intervals = dtime_s / trigger_interval; | ||||
| 			float intervals = actual_interval / trigger_interval; | ||||
| 			float chance = abm->getTriggerChance(); | ||||
| 			if(chance == 0) | ||||
| 				chance = 1; | ||||
|  | ||||
| @ -130,7 +130,8 @@ struct ABMWithState | ||||
| 	float timer; | ||||
| 
 | ||||
| 	ABMWithState(ActiveBlockModifier *abm_): | ||||
| 		abm(abm_) | ||||
| 		abm(abm_), | ||||
| 		timer(0) | ||||
| 	{} | ||||
| }; | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user