--- Log opened Sat Feb 23 00:00:23 2013 --- Day changed Sat Feb 23 2013 20130223 00:00:23 * pydsigner dies laughing 20130223 00:00:39< pydsigner> Anyways, I have an Idea for smaster's unit. 20130223 00:00:53< bumbadadabum> is it going to be a Shadow Master? 20130223 00:00:57< bumbadadabum> like in IftU? 20130223 00:02:44< pydsigner> I could do that, but I was thinking a Dwarven Arcanister with 80% CTH banhammer. 20130223 00:02:53-!- shadowm [~ignacio@wesnoth/developer/shadowmaster] has quit [] 20130223 00:02:54< bumbadadabum> 80%? 20130223 00:03:04< bumbadadabum> just 80%? 20130223 00:03:21< pydsigner> Precise feels too overpowered. ATM, anyways 20130223 00:03:29< bumbadadabum> yeah, it might be 20130223 00:03:50< pydsigner> Especially since I might add a special. 20130223 00:04:27< pydsigner> This idea might belong in TWFF though. 20130223 00:07:53-!- shadowm [~ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 00:10:54-!- vultraz [~chatzilla@124.109.10.167] has quit [Read error: Connection reset by peer] 20130223 00:10:56< pydsigner> Unless mattsc wants something else, I think I'm going to make him an over-powered rouser with level 5 or 6 leadership 20130223 00:11:09< bumbadadabum> do that 20130223 00:12:25< bumbadadabum> what are you going to make me? 20130223 00:15:55-!- vultraz [~chatzilla@124.109.10.167] has joined #wesnoth-umc-dev 20130223 00:30:44-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20130223 00:37:39-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has quit [Read error: Connection reset by peer] 20130223 00:44:42-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has joined #wesnoth-umc-dev 20130223 00:45:28-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20130223 00:56:22< pydsigner> Haven't decided yet 20130223 00:57:34< bumbadadabum> make wesbot a huge automaton 20130223 00:57:49-!- ancestral [~ancestral@50-78-227-230-static.hfc.comcastbusiness.net] has joined #wesnoth-umc-dev 20130223 00:58:12-!- AI0867 [~ai@wesnoth/developer/ai0867] has quit [Ping timeout: 248 seconds] 20130223 00:58:47< pydsigner> The Pacificator? 20130223 00:58:58< bumbadadabum> bigger 20130223 00:59:07< bumbadadabum> at least AtS Magnum Suit level 20130223 01:00:13< pydsigner> Magnum Suit? Don't see that unit 20130223 01:00:17-!- AI0867 [~ai@50709883.static.ziggozakelijk.nl] has joined #wesnoth-umc-dev 20130223 01:00:20-!- AI0867 [~ai@50709883.static.ziggozakelijk.nl] has quit [Changing host] 20130223 01:00:20-!- AI0867 [~ai@wesnoth/developer/ai0867] has joined #wesnoth-umc-dev 20130223 01:01:09< bumbadadabum> it's big and it flies 20130223 01:01:21< bumbadadabum> plus it has a badass hammer 20130223 01:02:49< pydsigner> Is that in a newer version or what? I don't see it 20130223 01:02:56-!- skyfaller [~skyfaller@wikipedia/Skyfaller] has quit [Read error: Connection reset by peer] 20130223 01:02:57< bumbadadabum> yes 20130223 01:03:00< bumbadadabum> latest version 20130223 01:03:56-!- skyfaller [~skyfaller@ool-43551edd.dyn.optonline.net] has joined #wesnoth-umc-dev 20130223 01:03:56-!- skyfaller [~skyfaller@ool-43551edd.dyn.optonline.net] has quit [Changing host] 20130223 01:03:56-!- skyfaller [~skyfaller@wikipedia/Skyfaller] has joined #wesnoth-umc-dev 20130223 01:05:29< mattsc> I like goblins, in particular those carrying prunes. 20130223 01:05:46< bumbadadabum> make a boss prune goblin 20130223 01:05:48 * pydsigner lols 20130223 01:05:58< pydsigner> mattsc: The prunes are awesome 20130223 01:06:09< pydsigner> That will be the ranged weapon 20130223 01:06:12< mattsc> And they are tasty too. 20130223 01:06:16< bumbadadabum> explosive prunes 20130223 01:06:18< pydsigner> Regenerates 20130223 01:06:23< mattsc> Hi, Alarantalara. Combinatorics question for you: 20130223 01:06:50< pydsigner> "You have been hit by a giant explosive AI-guided prune. You have been killed. Game over." 20130223 01:07:23< mattsc> Currently the biggest bottleneck in the (approximate) counter attack calculation is getting all the attack combinations of the enemy units against the given AI unit. 20130223 01:07:41< mattsc> Do you know any smart (=fast) algorithms to do that? 20130223 01:07:54< bumbadadabum> that can be a lot of combinations 20130223 01:08:08< mattsc> Indeed, that's why it takes so long. 20130223 01:08:36< bumbadadabum> what was the general formula for those things again? 20130223 01:08:39< mattsc> But I just made something up and coded it myself. Somebody smart must have come up with something that's better than that. 20130223 01:09:11< bumbadadabum> (attacks + ] 20130223 01:09:18< bumbadadabum> damnit fat fingers 20130223 01:09:32< bumbadadabum> I had this stuff a few years ago 20130223 01:09:48< mattsc> If you want just the number, then (under certain circumstances) you can get it from the binomial distribution. 20130223 01:09:56< bumbadadabum> yes 20130223 01:10:02< mattsc> But I don't just want the number of how many there are, but the actual combinations. 20130223 01:10:24< bumbadadabum> but that'd only be if the defense is 50% and the resistance 0 20130223 01:11:52< mattsc> Well, that's for the outcome. And no, you can generalize that. The question I am asking is different. 20130223 01:11:59< bumbadadabum> I'm trying to visualize a way to count combinations 20130223 01:13:07< bumbadadabum> well, take each combination separately 20130223 01:14:03-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 252 seconds] 20130223 01:15:35< mattsc> Well, if you have n units, each of which can get to k hexes (with k = n! / k! 20130223 01:16:05< bumbadadabum> yes 20130223 01:16:07< bumbadadabum> ] 20130223 01:16:09< bumbadadabum> I know that much 20130223 01:16:23< mattsc> That is, if the order matters, that is 20130223 01:16:41< bumbadadabum> yes, but I think it doesn't in this scenario 20130223 01:16:56< bumbadadabum> right? 20130223 01:17:06< mattsc> Right. That's a minor difference though, that's just another division. 20130223 01:17:13< mattsc> But, first of all, in a general situation in Wesnoth not all units can make it to all hexes. 20130223 01:17:41< mattsc> And second, I don't want the _number_ of combinations, but the actual combinations themselves. All of them, in a table. 20130223 01:18:11< bumbadadabum> I should have payed attention during math class 20130223 01:18:56< shadowm_desktop> MATHS. 20130223 01:19:48< pydsigner> Hahahah 20130223 01:20:11 * shadowm_desktop faints. 20130223 01:20:13< Alarantalara> mattsc: What's supposed to be in the table? 20130223 01:20:30< Alarantalara> I'm having trouble finding what you're currently doing 20130223 01:20:58< pydsigner> Alarantalara: Is there a unit that you would like to have? 20130223 01:22:28< Alarantalara> pydsigner: What is the context of your question? 20130223 01:24:00< pydsigner> Alarantalara: I'm going to write an IRC UMC Devs RPG Era 20130223 01:25:01< mattsc> Alarantalara: ai_helper.get_attack_combos() 20130223 01:25:02< pydsigner> So if you have noticed these discussions, mattsc is going to be a super-Rouser (with prunes!), I intend to be a mechanical dragon, etc. 20130223 01:25:36< bumbadadabum> shadowmaster must have a banhammer 20130223 01:25:47< bumbadadabum> AI0867 needs to be an AI 20130223 01:25:56< mattsc> Alarantalara: ideally I want a table that is something like: 20130223 01:26:19< mattsc> { hex_index = unit_index, ... } 20130223 01:26:53< pydsigner> bumbadadabum: So I imagine I will keep the Arcanister? 20130223 01:27:04< bumbadadabum> bigger hammer 20130223 01:27:19< pydsigner> Troll Warrior? 20130223 01:27:21< bumbadadabum> and more shadowy 20130223 01:27:28< bumbadadabum> I'm sure he can make his own sprite 20130223 01:27:39 * pydsigner imagines a Stealth Troll Warrior 20130223 01:27:51< bumbadadabum> with a crown 20130223 01:28:01< mattsc> Alarantalara: However, a table just listing the unit indices in the order of the hex indices (or vice versa) would be fine too. 20130223 01:28:20< mattsc> E.g { 1, 0, 0, 3} 20130223 01:28:42< mattsc> Meaning, Unit 1 on hex 1, no units on hexes 2 and 3, U3 on H4. 20130223 01:29:23< Alarantalara> And hexes are 1-6 around the target? 20130223 01:29:52< mattsc> They could be, or just the hexes that reachable by enemies. 20130223 01:30:38< pydsigner> bumbadadabum: So kinda like Zerovirus, only with a hammer. And a cloak. And a crown. 20130223 01:30:49< bumbadadabum> ask him 20130223 01:30:55< Alarantalara> So it's a list of all units and where they attack from, with all legal combinations? 20130223 01:31:28< pydsigner> shadowm: Are you interested? 20130223 01:31:43< mattsc> exactly 20130223 01:32:40< mattsc> Alarantalara: actually, having a quick look at AH.get_attack_combos, the problem could be the AH.get_attacks at the beginning not the creation of the combinations. 20130223 01:33:06< mattsc> Sorry, I missed that before. So, forget (for now) that I ask. I'll test that and report back. 20130223 01:33:13-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20130223 01:33:13< mattsc> *asked 20130223 01:34:04-!- Crendgrim [~crend@port-92-204-96-135.dynamic.qsc.de] has quit [Quit: ...] 20130223 01:36:06-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [Ping timeout: 264 seconds] 20130223 01:36:49-!- ancestral [~ancestral@50-78-227-230-static.hfc.comcastbusiness.net] has quit [Quit: i go nstuf kthxbai] 20130223 01:37:43-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 01:38:38< mattsc> Alarantalara: do'h, I'm an idiot. That indeed seems to be the case. Sorry for the bother in that case. 20130223 01:38:49< Alarantalara> no problem 20130223 01:39:32< mattsc> I think that's something I can work around, by creating the attack map only once at the beginning of each move, rather than for each attack combo calculation. 20130223 01:41:13< Alarantalara> pydsigner: I'd be something with the phase ability from here: http://wesnoth-umc-dev.svn.sourceforge.net/viewvc/wesnoth-umc-dev/trunk/Cataclysm/units/Allonna.cfg?revision=16365 20130223 01:41:24< Alarantalara> assuming I had unlimited choice 20130223 01:42:56< mattsc> Well, actually, no, it's not that easy. But I'll figure something out. 20130223 01:43:03< Alarantalara> I think it's what a skirmisher would be like if it were magical, and I like that sort of idea 20130223 01:45:59< pydsigner> Alarantalara: Well, that could be thrown onto anything 20130223 01:46:30< mattsc> It comes back to the: where can the enemy units move to is my unit _were_ at a hex different from where it is. I don't know of a way of doing this other than using the pathfinding tools, which take time... 20130223 01:47:13< mattsc> s/is/if (I can't type again today; not even talking about the other typos in that sentence) 20130223 01:48:05-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has quit [Quit: bye guys] 20130223 01:48:12< pydsigner> bumbadadabum: Wow, the magnum warrior is rather huge 20130223 01:48:19-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has joined #wesnoth-umc-dev 20130223 01:48:30< Alarantalara> So you want a pathfinding algorithm that returns a result 20130223 01:48:43< Alarantalara> But which you can then modify and it updates? 20130223 01:48:49< Alarantalara> with recalculating everything 20130223 01:48:53< Alarantalara> *without 20130223 01:49:13< mattsc> Ideally. 20130223 01:51:33< Alarantalara> That sounds doable. I wonder if the speed cost of Lua will outweigh the reduction in calculation. 20130223 01:54:33< mattsc> Yeah, me too, in principle Nephro implemented something that exposed the C++ functions to Lua, but last time I tested it it didn't work for me. 20130223 01:54:46< mattsc> It's possible that I just did it wrong. 20130223 01:57:29< mattsc> I need to be off now though. ttyl. 20130223 01:58:27-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has quit [Quit: bye] 20130223 02:22:44-!- loonybot [~loonybot@wesnoth/bot/loonybot] has quit [Remote host closed the connection] 20130223 02:29:19-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [Ping timeout: 260 seconds] 20130223 02:31:58-!- vultraz [~chatzilla@124.109.10.167] has quit [Changing host] 20130223 02:31:58-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-umc-dev 20130223 02:34:00-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has quit [Quit: Blueblaze] 20130223 02:35:19-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 02:54:16-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [Ping timeout: 246 seconds] 20130223 02:56:40-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 03:10:01-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20130223 03:32:10-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20130223 03:39:40-!- ancestral [~ancestral@12.145.225.29] has joined #wesnoth-umc-dev 20130223 03:47:52-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20130223 03:51:01-!- ancestral [~ancestral@12.145.225.29] has quit [Quit: i go nstuf kthxbai] 20130223 04:16:17-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [Read error: Connection reset by peer] 20130223 04:18:57-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 04:42:47-!- pydsigner [~Thunderbi@unaffiliated/pydsigner] has quit [Ping timeout: 244 seconds] 20130223 07:56:47-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [] 20130223 08:51:50-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has quit [Ping timeout: 255 seconds] 20130223 09:01:25-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has joined #wesnoth-umc-dev 20130223 09:01:42-!- skyfaller [~skyfaller@wikipedia/Skyfaller] has quit [Remote host closed the connection] 20130223 09:16:02-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has joined #wesnoth-umc-dev 20130223 09:20:25-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has quit [Client Quit] 20130223 09:34:03-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has quit [] 20130223 10:07:24-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20130223 10:42:24-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-umc-dev 20130223 10:49:06-!- AI0867 [~ai@wesnoth/developer/ai0867] has quit [Ping timeout: 276 seconds] 20130223 10:50:24-!- AI0867 [~ai@wesnoth/developer/ai0867] has joined #wesnoth-umc-dev 20130223 12:10:56-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 12:10:59-!- shadowm_laptop [ignacio@wesnoth/developer/shadowmaster] has quit [Client Quit] 20130223 12:44:47-!- loonybot [~loonybot@158.255.133.34] has joined #wesnoth-umc-dev 20130223 12:44:48-!- loonybot [~loonybot@158.255.133.34] has quit [Changing host] 20130223 12:44:48-!- loonybot [~loonybot@wesnoth/bot/loonybot] has joined #wesnoth-umc-dev 20130223 12:44:51-!- mode/#wesnoth-umc-dev [+v loonybot] by ChanServ 20130223 12:59:19-!- AI0867 [~ai@wesnoth/developer/ai0867] has quit [Read error: Operation timed out] 20130223 13:02:02-!- AI0867 [~ai@wesnoth/developer/ai0867] has joined #wesnoth-umc-dev 20130223 13:57:19-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Read error: Connection reset by peer] 20130223 14:00:10-!- vultraz [~chatzilla@124.109.10.167] has joined #wesnoth-umc-dev 20130223 14:01:10-!- vultraz [~chatzilla@124.109.10.167] has quit [Changing host] 20130223 14:01:10-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-umc-dev 20130223 15:07:45-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Read error: Connection reset by peer] 20130223 15:08:46-!- vultraz [~chatzilla@124.109.10.167] has joined #wesnoth-umc-dev 20130223 15:09:14-!- vultraz [~chatzilla@124.109.10.167] has quit [Changing host] 20130223 15:09:14-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-umc-dev 20130223 15:42:52-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-umc-dev 20130223 16:01:37-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20130223 16:20:58-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has joined #wesnoth-umc-dev 20130223 16:40:29-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20130223 17:01:00-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 17:05:36< mattsc> Alarantalara: I just tested a different method for getting the attacks that is significantly faster. 20130223 17:07:32< Alarantalara> excellent! 20130223 17:08:12-!- csarmi [~csarmi@195-38-105-102.pool.digikabel.hu] has joined #wesnoth-umc-dev 20130223 17:08:13< mattsc> I knew the old method was very slow, but so far I've never had a need to change that. 20130223 17:08:51-!- csarmi [~csarmi@195-38-105-102.pool.digikabel.hu] has quit [Client Quit] 20130223 17:44:51-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20130223 18:07:46-!- vultraz_laptop [~chatzilla@124.109.10.167] has joined #wesnoth-umc-dev 20130223 18:09:07-!- vultraz_laptop [~chatzilla@124.109.10.167] has quit [Changing host] 20130223 18:09:07-!- vultraz_laptop [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-umc-dev 20130223 19:17:30-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has joined #wesnoth-umc-dev 20130223 19:21:04-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has joined #wesnoth-umc-dev 20130223 19:34:46-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has joined #wesnoth-umc-dev 20130223 19:49:41-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has quit [Quit: Blueblaze] 20130223 20:04:41-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has joined #wesnoth-umc-dev 20130223 20:22:47-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has joined #wesnoth-umc-dev 20130223 20:24:37-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has quit [Quit: bumbadadabum] 20130223 21:33:50-!- Alarantalara [~Adium@CPEc0c1c09e8055-CM00252eac6d62.cpe.net.cable.rogers.com] has quit [Quit: Leaving.] 20130223 21:37:27-!- esr [~chatzilla@wesnoth/developer/esr] has quit [Remote host closed the connection] 20130223 22:01:38-!- skyfaller [~skyfaller@ool-43551edd.dyn.optonline.net] has joined #wesnoth-umc-dev 20130223 22:01:38-!- skyfaller [~skyfaller@ool-43551edd.dyn.optonline.net] has quit [Changing host] 20130223 22:01:38-!- skyfaller [~skyfaller@wikipedia/Skyfaller] has joined #wesnoth-umc-dev 20130223 22:07:52-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has quit [Ping timeout: 246 seconds] 20130223 22:09:43-!- shadowm_desktop [ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-umc-dev 20130223 22:11:43-!- AI0867 [~ai@wesnoth/developer/ai0867] has quit [Ping timeout: 246 seconds] 20130223 22:27:48-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has quit [Quit: Blueblaze] 20130223 22:29:43-!- Blueblaze [~Blueblaze@99.158.46.191] has joined #wesnoth-umc-dev 20130223 22:36:13-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has quit [Ping timeout: 246 seconds] 20130223 22:39:51-!- Blueblaze [~Blueblaze@99.158.46.191] has quit [Quit: Blueblaze] 20130223 22:40:15-!- Blueblaze [~Blueblaze@2602:306:39e2:ebf9:48c3:8c93:76dc:e2c2] has joined #wesnoth-umc-dev 20130223 22:55:07-!- mattsc [~mattsc@d154-20-32-241.bchsia.telus.net] has quit [Quit: bye] 20130223 23:02:06-!- Blueblaze [~Blueblaze@2602:306:39e2:ebf9:48c3:8c93:76dc:e2c2] has quit [Ping timeout: 245 seconds] 20130223 23:03:38-!- Blueblaze [~Blueblaze@adsl-99-158-46-191.dsl.hstntx.sbcglobal.net] has joined #wesnoth-umc-dev 20130223 23:09:53-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has joined #wesnoth-umc-dev 20130223 23:18:41-!- _8680_ [~quassel@ip68-225-249-82.oc.oc.cox.net] has quit [] --- Log closed Sun Feb 24 00:00:41 2013