OSDN Git Service

損傷状態の表示を変更
[kcd/KCD.git] / KCD / HMDamageValueTransformer.m
1 //
2 //  HMDamageValueTransformer.m
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2016/02/23.
6 //  Copyright © 2016年 Hori,Masaki. All rights reserved.
7 //
8
9 #import "HMDamageValueTransformer.h"
10
11 @implementation HMDamageValueTransformer
12 + (void)load
13 {
14         static dispatch_once_t onceToken;
15         dispatch_once(&onceToken, ^{
16                 [NSValueTransformer setValueTransformer:[self new] forName:@"HMDamageValueTransformer"];
17         });
18 }
19 + (Class)transformedValueClass
20 {
21         return [NSAttributedString class];
22 }
23 + (BOOL)allowsReverseTransformation
24 {
25         return NO;
26 }
27
28 - (NSParagraphStyle *)paragraphStyle
29 {
30         static NSParagraphStyle *style = nil;
31         if(!style) {
32                 NSMutableParagraphStyle *s = [NSMutableParagraphStyle new];
33                 s.alignment = NSTextAlignmentCenter;
34                 style = s;
35         }
36         return style;
37 }
38
39 - (id)transformedValue:(id)value
40 {
41         NSInteger damage = [value integerValue];
42         
43         NSString *mark = nil;
44         NSDictionary *attr = nil;
45         
46         switch(damage) {
47                 case 0:
48                         return nil;
49                         break;
50                 case 1:
51 //                      mark = @"•";
52                         mark = @"●";
53                         attr = @{
54                                          NSForegroundColorAttributeName:
55                                                  [NSColor colorWithCalibratedRed:1.000 green:0.925 blue:0.000 alpha:1.000],
56                                          NSParagraphStyleAttributeName: self.paragraphStyle
57                                          };
58                         break;
59                 case 2:
60                         mark = @"●";
61                         attr = @{
62                                          NSForegroundColorAttributeName:
63                                                  [NSColor colorWithCalibratedRed:1.000 green:0.392 blue:0.000 alpha:1.000],
64                                          NSParagraphStyleAttributeName: self.paragraphStyle
65                                          };
66                         break;
67                 case 3:
68                         mark = @"◼︎";
69                         attr = @{
70                                          NSForegroundColorAttributeName:
71                                                  [NSColor colorWithCalibratedRed:0.870 green:0.000 blue:0.036 alpha:1.000],
72                                          NSParagraphStyleAttributeName: self.paragraphStyle
73                                          };
74                         break;
75                 default:
76                         NSLog(@"Unknown status");
77                         return nil;
78                         break;
79         }
80         
81         NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:mark
82                                                                                                                                                            attributes:attr];
83         
84         return result;
85 }
86 @end