All pastes #159687 Raw Edit

Untitled

public text v1 · immutable
·published 2006-09-03 11:28 UTC
rendered paste body
Main Thread:
Lock PlayerList
Lock MonsterList
Player targets Monster
If not BattleThread exists
	Monster->ChallengerList->Add(Player);
	Create BattleThread with Player->MeleeAttack(Monster);
	Unlock PlayerList
	Unlock MonsterList
EndIf

BattleThread:
Do
Lock MonsterList
Lock PlayerList
If Monster->HP <= 0
	Calculate rewards
	If sizeof(Monster->ChallengerList) / sizeof(Challenger) == 1
		MonsterList->Delete(Monster);
	Else
		Monster->ChallengerList->Delete(Player);
	EndIf
	End BattleThread
Else
	If NextHitTime < CurrentTime && Player->isAttacking
		Player attacks Monster by Damage
		Monster->HP -= Damage;
		NextHitTime = CurrentTime + TimeDelay;
	EndIf
EndIf
Unlock MonsterList
Unlock PlayerList
While(1)