- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
public static function giveReward (
rewardVector : Vector.<ResourceData>,
mediator : GameObjectMediator,
collectionItem : GnomeCollectionItem = null,
sendAddItems : Boolean = false,
moneySyncCategory:String = "reward",
moneySyncItemId:String = null) : void
{
var facade : IFacade = Facade.getInstance();
for each (var resourceData : ResourceData in rewardVector) {
var resourceType : String = resourceData.resourcetype;
if (SoundFileCollection.instance.getEntry(resourceType)) {
facade.sendNotification(SoundNotifications.SOUND_PLAY, resourceType);
}
else if (NoticeCollection.instance.getEntry(resourceType)) {
facade.sendNotification(UINotifications.SHOW_NOTICE, resourceType);
}
else if (Quests.instance.getEntry(resourceType)) {
var quest : Quest = Quests.instance.getProxy(resourceType) as Quest;
if (quest.status != QuestData.ACTIVE && quest.status != QuestData.COMPLETE) {
Player.instance.runDirective(DQuestActivate.NAME, {id : resourceType});
}
}
else if (RewardCollection.instance.getEntry(resourceType)) {
var rewardProxy : Reward = RewardCollection.instance.getProxy(resourceType) as Reward;
Reward.giveReward(rewardProxy.reward, mediator, null, sendAddItems, moneySyncCategory, moneySyncItemId);
}
else if (BehaviorCollection.instance.getEntry(resourceType)) {
var behavior : Behavior = BehaviorCollection.instance.getProxy(resourceType) as Behavior;
behavior.process();
}
else {
if (sendAddItems) {
Player.instance.runDirective(DAddItem.NAME, { 'id' : resourceType, 'value' : resourceData.quantity });
}
var consumable : Consumable = ConsumableCollection.instance.getProxy(resourceType) as Consumable;
if (consumable) {
if (consumable.tags.find(Consumable.TAG_WORKER)) {
Player.instance.runDirective(DPlaceHelper.NAME, {asset : consumable.flex, x : mediator.cell.cx, y : mediator.cell.cy});
}
else if (CharacterDefinitionCollection.instance.getEntry(consumable.flex)) {
if (resourceData.quantity > 0) {
Player.instance.runDirective(DPlaceNPC.NAME, { id : consumable.id, asset: consumable.flex } );
} else if (resourceData.quantity < 0) {
Player.instance.runDirective(DRemoveNPC.NAME, {id : consumable.id});
}
}
} else {
var charDef : CharacterDefinition = CharacterDefinitionCollection.instance.getProxy(resourceType) as CharacterDefinition;
if (charDef) {
if (charDef.tags.find(CharacterDefinition.TAG_NPC)) {
if (resourceData.quantity > 0) {
Player.instance.runDirective(DPlaceNPC.NAME, {id : charDef.id});
} else if (resourceData.quantity < 0) {
Player.instance.runDirective(DRemoveNPC.NAME, {id : charDef.id});
}
} else {
Player.instance.runDirective(DPlaceHelper.NAME, {asset : charDef.id, x : mediator.cell.cx, y : mediator.cell.cy});
}
} else {
Player.instance.setResource(resourceType, resourceData.quantity, true);
if (!moneySyncItemId && mediator) {
moneySyncItemId = mediator.id;
}
var moneySync : MoneySync = new MoneySync(moneySyncCategory, moneySyncItemId, resourceType, resourceData.quantity);
Player.instance.sendNotification(GameNotifications.MONEY_SYNC, moneySync);
}
}
if (resourceType.indexOf('GOTO') != -1) {
// goto world
var wordId : String = resourceType.split('-')[1];
var uiMed:UIMediator = Facade.getInstance().retrieveMediator(UIMediator.NAME) as UIMediator;
uiMed.hide();
Player.instance.runDirective(DSetLocation.NAME, {id : wordId});
}
}
}
var lootObject : Object = { container : mediator.view, loot : rewardVector };
if (collectionItem != null) {
lootObject.additionalItem = collectionItem;
}
facade.sendNotification(MidLayNotifications.ML_LOOT_OBJECT, lootObject);
Player.instance.runDirective(CheckIn.NAME);
}
wvxvw 14.12.2012 13:17 # 0
Я тоже так делаю, когда точно не знаю, как в итоге что будет выглядеть: лучше сначала написать так, чтобы хоть как-то работало, потом найти / выделить общие свойства и сократить / привести к общему знаменателю.
Тем более, видно, что человек развивается. Вот, про for each наконец-то узнал.
kyzi007 14.12.2012 13:25 # 0
anonimb84a2f6fd141 14.12.2012 18:04 # −3
Или ты и есть твой бывшый... точнее тогда НЕ бывшый.
LispGovno 14.12.2012 23:41 # +1
bormand 15.12.2012 09:45 # +2
kyzi007 14.12.2012 13:28 # 0
Я в принципе еще не кидаю потому что кашу смотреть неинтересно.
Lure Of Chaos 16.12.2012 14:54 # 0
по-моему, это можно было отдельным постом
LispGovno 16.12.2012 17:11 # 0
scriptin 16.12.2012 20:26 # +1
LispGovno 17.12.2012 00:15 # 0
scriptin 17.12.2012 19:21 # +2
http://code.google.com/p/developmentarc-core/wiki/SingletonFactory
LispGovno 17.12.2012 19:27 # 0
scriptin 17.12.2012 23:22 # 0
kyzi007 17.12.2012 18:04 # 0