F4E7802B18DC3A820011BC4C /* HMLocalDataStore.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E7802A18DC3A820011BC4C /* HMLocalDataStore.m */; };
F4E7802E18DC3AF00011BC4C /* LocalData.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = F4E7802C18DC3AF00011BC4C /* LocalData.xcdatamodeld */; };
F4E90B5E1DE713FF00643B5F /* HMSetPlaneCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E90B5D1DE713FF00643B5F /* HMSetPlaneCommand.m */; };
+ F4E90B611DE8899F00643B5F /* HMAirCorpsSupplyCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4E90B601DE8899F00643B5F /* HMAirCorpsSupplyCommand.m */; };
F4ECA36F1C6102FC0098AB6A /* HMMillisecondTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = F4ECA36E1C6102FC0098AB6A /* HMMillisecondTransformer.m */; };
F4ED5D2A1B78D0CA00D1BDEF /* HMGuardEscapedView.m in Sources */ = {isa = PBXBuildFile; fileRef = F4ED5D291B78D0CA00D1BDEF /* HMGuardEscapedView.m */; };
F4ED5D2D1B7C677E00D1BDEF /* HMGuardShelterCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = F4ED5D2C1B7C677E00D1BDEF /* HMGuardShelterCommand.m */; };
F4E7802D18DC3AF00011BC4C /* LocalData.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LocalData.xcdatamodel; sourceTree = "<group>"; };
F4E90B5C1DE713FF00643B5F /* HMSetPlaneCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMSetPlaneCommand.h; sourceTree = "<group>"; };
F4E90B5D1DE713FF00643B5F /* HMSetPlaneCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMSetPlaneCommand.m; sourceTree = "<group>"; };
+ F4E90B5F1DE8899F00643B5F /* HMAirCorpsSupplyCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMAirCorpsSupplyCommand.h; sourceTree = "<group>"; };
+ F4E90B601DE8899F00643B5F /* HMAirCorpsSupplyCommand.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMAirCorpsSupplyCommand.m; sourceTree = "<group>"; };
F4ECA36D1C6102FC0098AB6A /* HMMillisecondTransformer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMMillisecondTransformer.h; sourceTree = "<group>"; };
F4ECA36E1C6102FC0098AB6A /* HMMillisecondTransformer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HMMillisecondTransformer.m; sourceTree = "<group>"; };
F4ED5D281B78D0CA00D1BDEF /* HMGuardEscapedView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HMGuardEscapedView.h; sourceTree = "<group>"; };
F48F7B011907D7B800E78AE1 /* HMPortCommand.m */,
F499E88E1B5D4E7F00189029 /* HMPortNotifyCommand.h */,
F499E88F1B5D4E7F00189029 /* HMPortNotifyCommand.m */,
+ F4E90B5F1DE8899F00643B5F /* HMAirCorpsSupplyCommand.h */,
+ F4E90B601DE8899F00643B5F /* HMAirCorpsSupplyCommand.m */,
);
name = Command;
sourceTree = "<group>";
F4D6BC551A93903E00742FEB /* HMDropShipHistory.m in Sources */,
F4131EE91911445F004F7F9A /* HMSlotItemEquipTypeTransformer.m in Sources */,
F402D5371BE3AFAB008D5881 /* HMSlotResetCommand.m in Sources */,
+ F4E90B611DE8899F00643B5F /* HMAirCorpsSupplyCommand.m in Sources */,
F4BDEB5A187252F30069D0CE /* HMAppDelegate.m in Sources */,
F4A9E8091D045C3000F91746 /* HMScreenshotEditorViewController.m in Sources */,
F4E7802B18DC3A820011BC4C /* HMLocalDataStore.m in Sources */,
--- /dev/null
+//
+// HMAirCorpsSupplyCommand.m
+// KCD
+//
+// Created by Hori,Masaki on 2016/11/26.
+// Copyright © 2016年 Hori,Masaki. All rights reserved.
+//
+
+#import "HMAirCorpsSupplyCommand.h"
+
+#import "HMKCAirBase.h"
+#import "HMKCAirBasePlaneInfo.h"
+#import "HMKCMaterial.h"
+
+#import "HMServerDataStore.h"
+
+
+@implementation HMAirCorpsSupplyCommand
++ (void)load
+{
+ static dispatch_once_t onceToken;
+ dispatch_once(&onceToken, ^{
+ [HMJSONCommand registerClass:self];
+ });
+}
+
++ (BOOL)canExcuteAPI:(NSString *)api
+{
+ if([api isEqualToString:@"/kcsapi/api_req_air_corps/supply"]) return YES;
+ return NO;
+}
+
+- (void)execute
+{
+ HMServerDataStore *store = [HMServerDataStore oneTimeEditor];
+ NSError *error = nil;
+
+ NSString *areaId = self.arguments[@"api_area_id"];
+ NSString *rId = self.arguments[@"api_base_id"];
+ NSString *squadronIdsString = self.arguments[@"api_squadron_id"];
+ NSArray *airBases = [store objectsWithEntityName:@"AirBase"
+ sortDescriptors:nil
+ error:&error
+ predicateFormat:@"area_id == %@ AND rid == %@", @(areaId.integerValue), @(rId.integerValue)];
+ if(airBases.count == 0) { return; }
+
+ HMKCAirBase *airBase = airBases[0];
+ NSOrderedSet *planes = airBase.planeInfo;
+
+ NSDictionary *json = self.json;
+ NSDictionary *data = json[@"api_data"];
+ NSArray *planeInfos = data[@"api_plane_info"];
+ if(planeInfos.count == 0) { return; }
+
+ NSArray *squadronIds = [squadronIdsString componentsSeparatedByString:@","];
+ NSLog(@"sq count -> %ld", squadronIds.count);
+
+ [squadronIds enumerateObjectsUsingBlock:^(NSString * _Nonnull squadronId, NSUInteger idx, BOOL * _Nonnull stop) {
+ if(planes.count < squadronId.integerValue) { return; }
+ HMKCAirBasePlaneInfo *plane = planes[squadronId.integerValue - 1];
+
+ if(planeInfos.count <= idx) { return; }
+ NSDictionary *planeInfo = planeInfos[idx];
+
+ plane.count = planeInfo[@"api_cond"];
+ plane.slotid = planeInfo[@"api_slotid"];
+ plane.state = planeInfo[@"api_state"];
+ plane.count = planeInfo[@"api_count"];
+ plane.max_count = planeInfo[@"api_max_count"];
+ }];
+
+ airBase.distance = data[@"api_distance"];
+
+ NSArray *materials = [store objectsWithEntityName:@"Material"
+ predicate:nil
+ error:&error];
+ if(materials.count == 0) { return; }
+
+ HMKCMaterial *material = materials[0];
+ material.bauxite = data[@"api_after_bauxite"];
+ material.fuel = data[@"api_after_fuel"];
+}
+
+@end